3

Servicestack サービスで NLog を使用しています。NLog の MappedDiagnosticsContext を使用して、各ログ エントリに変数を追加したいと考えています。私の場合、リクエストごとに一意の識別子を生成し、そのリクエスト中に記録されたすべてのログエントリとともにその識別子をログに記録したいと考えています。

インターフェース(または他のServiceStack.Logging.ILogサービススタックロギングクラス)はこれをサポートしていないようです。

しかし、私はできますNLog.MappedDiagnosticsContext.Set("somekey", "some value")。これは機能しますが、私を NLog に結び付けます (私はそれについて心配していません)。

2 つの質問:

  1. servicestack でこれを行うより良い方法はありますか。
  2. NLog の MappedDiagnosticsContext で設定された値がリクエストにスコープされていると仮定しても安全ですか?
4

2 に答える 2

0

これらの目的で MappedDiagnosticsContext を使用する予定です。

イベント ログ ターゲットの EventID: ${mdc:item=eventId}。代わりに eventcontext プロパティを使用することを検討していましたが、アイテムをログに記録する方法が変わります。

NuGet の NLog 2.0.1.0 を使用しても、ASP 以外のコードでは ${aspnet-sessionid} の方法が正しく機能しないように見えるため、ASP.Net コードについてログに記録するときの他のターゲットの SessionId: ${mdc:item=sessionId} .

私のテストは、これらのケースが私の目的にとって意味があることを示しています。

于 2013-10-07T16:23:41.277 に答える