在 Azure WebJobs 中使用 NLog 记录
Logging With NLog In Azure WebJobs
我有一个 NLog 配置,它适用于我的网络应用程序 (ASP.NET Core)。
现在我正在尝试将 NLog 添加到我的网络作业中,但我不知道该怎么做。
在 Program.cs 的 webjob 项目中,我需要以某种方式注入 IHostingEnvironment 和 ILoggerFactory(我将它们都注入到 Web 应用程序的 StartUp 构造函数中)。
一旦我知道该怎么做,我应该能够完成配置。
如果那不可能,我有什么选择?
我不喜欢使用传递到 webjob 方法中的 TextWriter class,因为我想提取日志并将它们路由到我最终希望它去的地方会很困难。
以下是在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 获取记录器实例 class。
private static Logger logger = LogManager.GetLogger("MyLog");
第四步,获取到logger实例后,就可以使用下面的代码写log了。
logger.Trace("Sample trace message");
logger.Debug("Sample debug message");
我有一个 NLog 配置,它适用于我的网络应用程序 (ASP.NET Core)。 现在我正在尝试将 NLog 添加到我的网络作业中,但我不知道该怎么做。
在 Program.cs 的 webjob 项目中,我需要以某种方式注入 IHostingEnvironment 和 ILoggerFactory(我将它们都注入到 Web 应用程序的 StartUp 构造函数中)。 一旦我知道该怎么做,我应该能够完成配置。
如果那不可能,我有什么选择?
我不喜欢使用传递到 webjob 方法中的 TextWriter class,因为我想提取日志并将它们路由到我最终希望它去的地方会很困难。
以下是在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 获取记录器实例 class。
private static Logger logger = LogManager.GetLogger("MyLog");
第四步,获取到logger实例后,就可以使用下面的代码写log了。
logger.Trace("Sample trace message");
logger.Debug("Sample debug message");