私の会社の標準のログ ツールは NLog です。Quartz.net を導入しようとしていて、Log4Net の代わりに NLog を使用できるかどうか尋ねられました。
NLog を使用するように再コンパイルできることはわかっていますが、可能であれば構成ファイルから実行したいと考えています。
私の会社の標準のログ ツールは NLog です。Quartz.net を導入しようとしていて、Log4Net の代わりに NLog を使用できるかどうか尋ねられました。
NLog を使用するように再コンパイルできることはわかっていますが、可能であれば構成ファイルから実行したいと考えています。
Quartz.net1.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を使用します。
config ディレクティブの使用は確かにこれを行う 1 つの方法ですが、既存の nlog 構成があり、Quartz ロギングを単に「ドロップ」したい場合は不要です。
nuget から適切なバージョンの 'Common.Logging.NLog' を参照し、通常どおりログを構成し、これを最後に追加します。
var config = new NameValueCollection();
var adaptor = new NLogLoggerFactoryAdapter(config);
Common.Logging.LogManager.Adapter = adaptor;
すべての Quartz ロギング (およびすべての一般的なロギング) が、既存の nlog 構成に転送されるようになりました。
今日、私は同じ問題に直面しています。この記事は私を大いに助けてくれますが、物事は少し変わっています...
Quartz.Net 2.6.1 を使用しています。
Common.Logging.NLog は非推奨であり、NLog バージョンごとに新しい dll があります。
したがって、新しい構成は次のとおりです。
<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>
NLogLoggerFactoryAdapterの名前空間は変更されませんが、dll 名が変更されます。
以下のバージョンが同じであることを確認してください。
Common.Logging
Common.Logging.Core
Common.Logging.NLogXX