0

皆さん、

ここにある指示に従って、NServiceBus ロギングが正しく機能するようになりました: http://docs.particular.net/nservicebus/logging/

ただし、Common.Logging を使用しています。Common.Logging に LogManager を使用すると、ログが記録されません。

log4net に LogManager を使用すると、すべて正常に動作します。

誰でもここで何か洞察がありますか?

4

3 に答える 3

3

私はこれを理解しました。(構成ファイルで) 宣言的にではなく、プログラムで Common.Logging を設定する必要がありました。

基本的に、流暢なバス構成を行う前に、次の行を追加しました。

    LogManager.Adapter = new Log4NetLoggerFactoryAdapter(new NameValueCollection { { "configType", "INLINE" } });
    SetLoggingLibrary.Log4Net(log4net.Config.XmlConfigurator.Configure);

そして、私のバスログセクションは次のようになります:

.Log4Net<ColoredConsoleAppender>(cca =>
                                                 {
                                                    cca.Layout = patternLayout;
                                                 })
.Log4Net<RollingFileAppender>(fa =>
                                              {
                                                fa.File = "log/handler.log";
                                                fa.AppendToFile = true;
                                                fa.RollingStyle = RollingFileAppender.RollingMode.Size;
                                                fa.MaxSizeRollBackups = 5;
                                                fa.MaximumFileSize = "1000KB";
                                                fa.StaticLogFileName = true;
                                                fa.Layout = patternLayout;
                                              })

これにより、構成ファイルにログレベルをロードできますが、Udi が提案するようにコードにアペンダー構成を残すことができます (これは素晴らしいアイデアだと思います)。

nServiceBus の組み込みのログ レベルを使用できることはわかっていますが、nHibernate のログを無視して nServiceBus のログをすべて取得できるように、それを細かく制御する方法がわかりませんでした。

私が行ったことについてさらにガイダンスが必要な場合は、ここにコメントしてください。または、nServiceBus のログ レベルを使用してきめ細かい制御を行う方法を知っている場合は、それもお知らせください。

于 2011-05-11T20:15:28.763 に答える
0

Common.Logging は、NServiceBus の内部目的のために log4net からの抽象化として機能します。

于 2011-05-11T04:50:34.647 に答える