2017-03-08 2 views
1

Serilogでの作業を開始したばかりですが、かなりいいですが、ちょっと混乱しています。Serilogを使用してWebAPI 2の重要な情報をログに記録

私のコントローラのアクションでエラーが発生した場合は、リクエスト(ヘッダー、パラメータなど)からという便利な情報をにできるだけ記録します。

どうすればいいですか?あなたは、リンクからドキュメントを1としてEnrichment機能

を使用して見て可能性があり

答えて

1

、あなたはログを書かれたすべてのイベントは、プロパティを運ぶだろう」

var log = new LoggerConfiguration() 
.Enrich.WithThreadId() 
.WriteTo.Console() 
.CreateLogger(); 

に似た、あなたのロガーを構築するだろうとスレッドID (通常、エンリッチ上の任意の.WithXyz()メソッドは、Xyzという名前のプロパティを作成します)。 "

Githubの例はSerilogWeb.Classicです。これは、リクエストから特定の情報を取得するための多数のエンリッチャを提供します。

var log = new LoggerConfiguration() 
.WriteTo.ColoredConsole() 
.Enrich.With<HttpRequestIdEnricher>() 
.Enrich.With<UserNameEnricher>() 
.CreateLogger(); 

その後、enricherを使用してロガーを初期化、あなたは常にあなたのログに出力したい情報を取り込みenricherを作成し、同様のapporachに従うことができます。

+1

「SerilogWeb.Classic.WebApi」には、WebAPI情報もいくつか追加されています。https://github.com/serilog-web/classic-webapi –

関連する問題