使用NLog登录Azure Web作业
问题描述:
我有一个NLog配置,对我的Web应用程序(ASP.NET Core)工作得很好。 现在我正在尝试将NLog添加到我的webjobs中,但我无法弄清楚如何去做。使用NLog登录Azure Web作业
在webjob项目中的Program.cs中,我需要以某种方式注入IHostingEnvironment和ILoggerFactory(两者都注入到Web应用程序的StartUp构造函数中)。一旦我知道如何做到这一点,我应该能够完成配置。
如果这是不可能的,我有什么替代方案?
我并不热衷于使用传递到webjob方法的TextWriter类,因为我想这将很难提取日志并将它们路由到最终希望它去的地方。
答
以下是在WebJob中使用NLog的步骤。
第1步,为您的WebJob安装NLog.Config包。
Install-Package NLog.Config
第2步,将规则和目标添加到NLog.config文件。以下是将日志写入文件的示例。
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile" xsi:type="File" fileName="file.txt" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>
第3步,使用LogManager类获取记录器实例。
private static Logger logger = LogManager.GetLogger("MyLog");
第4步,获得记录器实例后,您可以使用以下代码编写日志。
logger.Trace("Sample trace message");
logger.Debug("Sample debug message");
这对任何人都适用吗?我没有看到任何创建的文件。也许这是因为我有一个.NET核心应用程序。 –