1

ロギング システムを使用して大規模な Web アプリケーションを追跡したいと考えています。これまでのところ、構成と API が簡単な NLog に落ち着きました。

トレースを有効にすると、さまざまなユーザーのログが大量に記録されることを期待しています。個々のログ行を単一のリクエストに関連付ける方法はありますか?

4

2 に答える 2

1

それを尋ねた後、答えを見つけました。

各要求は ASP.NET の新しいスレッドによって処理されるため、現在のスレッドに一意の名前を付けるのがコツです。

HttpRequest request = HttpContext.Current.Request;
Thread.CurrentThread.Name = Guid.NewGuid().ToString() + request.UserHostAddress;

この情報は、NLog で次のように読み取ることができます。${threadname}

于 2010-12-20T09:33:50.913 に答える
0

ASP 情報を出力する LayoutRenderer がいくつかあります (私は ASP.NET 用に開発したことがないので、(もしあれば) どれが必要なものを提供するかはわかりません)。LayoutRenderer のリストについては、このリンクを参照してください。

http://nlog-project.org/wiki/Layout_renderers

(同じサイトの) NLog フォーラムから、何人かの人々が ASP.NET LayoutRenders で何かを出力するのに問題を抱えていることがわかります (少なくとも NLog 2.0 では)。これまでに推奨された解決策 (ベータ段階で修正する必要があります) は、これを NLog.config ファイルに追加することです。

<extensions>
  <add assembly="NLog.Extended" />
</extensions>

NLog.Extended.dll が NLog.dll と同じディレクトリにあることを確認する

フォーラムは個々の投稿へのリンクを提供していないため、フォーラムの特定の投稿へのリンクを投稿することはできませんが、2010 年 10 月 28 日に寄せられた質問への回答でした。質問のタイトルは次のとおりです。 NLOG と ASP.NET".

于 2010-12-16T17:05:33.303 に答える