Nservicebus v5 の DefaultFactory LogManager を使用しています。これには満足していますが、web.config で無効にできることを望んでいました。
ヘルプ ドキュメントにあるように、web.config 設定を使用します。
<configSections>
<section name="Logging" type="NServiceBus.Config.Logging, NServiceBus.Core" />
</configSections>
<Logging Threshold="Debug" />
しきい値を致命的なものに設定しないことをお勧めします。「None」または Disabled="true" を望んでいました
また、ディレクトリ パスを web.config に設定できますか?
更新: エラーを無視する必要があるのはなぜですか?
要するに、サーバーに対する書き込み権限が実際にはありません。
長い間、これは 100% 真実ではありません。私たちのシステムはマイクロサービスに向かっています。これの問題は、分散ロギングがトレース/視覚化の悪夢であることです. そのため、フロー トレース、例外、限定トレースを集中型システムに移行しました。
プログラミング エントリ ポイント (別名メッセージ ハンドラー、Web API エンドポイントなど) は、ほとんどの場合、各ハンドラーの try catch ログ スローにラップされます。これにより、すべてのプログラミング エラーがカバーされます。これは通常とそれほど違いはありません。必要なすべての素敵な赤く点滅するリアルタイム アラームの集中ログ ロケーション セット。
これにより、キューの欠落、アセンブリ バインドの不良、構成ファイルの誤り、IoC ワイヤリング (ハンドラー コードの外部) などのランタイム スタイルのものなど、構成タイプのエラーのみが残ります。エラークエストの集中ログと監視により、サービスが壊れていることを検出するのはかなり簡単です。壊れている場合は、ログをオンにして再起動し、問題のある問題を試して修正します. 保証された配信は、それが再び立ち上がると、他のすべてを処理します:D 150 MB のログ ファイルが 10 の異なるサーバーに分散する時代は終わりました。
DefaultFactory のシンプルさは素晴らしく、別の nuget パッケージと関連する構成は必要ありませんでした。
これは正しい方法ですか?多くの人はノーと主張するでしょう。もっとうまくできたでしょうか?はい、共通のロガー インターフェースを実装して NServiceBus に渡すことはできますが、まだ静かではなく、勝利は重要ではありません。
補足: 私たちがログに記録する方法について本当に素晴らしい点の 1 つは、バックオフィス ツールで、greylog で相関 ID を使用するのと同様に、各「注文」のフローを簡単に表示できることです。