如何在Quartz.Net中从Log4Net切换到NLog?

时间:2011-07-04 10:01:11

标签: log4net quartz.net nlog common.logging

我公司的标准日志工具是NLog。我正在尝试介绍Quartz.net,并被问到是否可以使用NLog而不是Log4Net。

我知道我可以重新编译使用NLog,但是如果可能的话,我想从配置文件中完成。

3 个答案:

答案 0 :(得分:7)

假设您使用的是Quartz.net 1.0.3。您必须添加对以下程序集的引用:

Common.Logging
Common.Logging.NLog
NLog

然后,您必须在应用程序的配置文件中添加以下配置:

<configuration>
   <configSections>
      <sectionGroup name="common">
         <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
      </sectionGroup>
   </configSections>

   ...

   <common>
      <logging>
         <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog">
        <arg key="configType" value="FILE" />
        <arg key="configFile" value="~/NLog.config" />
     </factoryAdapter>
      </logging>
   </common>

</configuration>

请注意,我使用的是外部NLog.config文件。

注意

Quartz.net使用Common.Logging 1.2版。

答案 1 :(得分:2)

配置指令的使用肯定是这样做的一种方式,但是如果你有一个现有的nlog配置并想要“插入”石英日志,那就没必要了。

只需从nuget引用相应版本的'Common.Logging.NLog',正常配置您的日志记录并将其添加到结尾:

var config = new NameValueCollection();
var adaptor = new NLogLoggerFactoryAdapter(config);
Common.Logging.LogManager.Adapter = adaptor;

现在,所有石英日志记录(以及所有常见日志记录)都将转发到您现有的nlog配置。

答案 2 :(得分:0)

今天我面临着同样的问题。 这篇文章给了我很多帮助,但是这些改变了一点......

我使用Quartz.Net 2.6.1。

不推荐使用Common.Logging.NLog,每个NLog版本都有一个新的dll。

所以新的配置是:

&#13;
&#13;
<configuration>
   <configSections>
      <sectionGroup name="common">
         <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
      </sectionGroup>
   </configSections>

   ...

   <common>
      <logging>
         <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog21">
        <arg key="configType" value="FILE" />
        <arg key="configFile" value="~/NLog.config" />
     </factoryAdapter>
      </logging>
   </common>

</configuration>
&#13;
&#13;
&#13;

NLogLoggerFactoryAdapter 的命名空间未更改,但dll名称已更改。

请确保您使用的是相同版本:

  • Common.Logging

  • Common.Logging.Core

  • Common.Logging.NLogXX