2016-07-20 21 views
7

LogLevelに関係なく、すべてのタイプのイベントを単一のJsonファイルに記録しています。今度は、いくつかのカスタムパフォーマンスカウンターを別々のJsonファイルに記録するという要件があります。これはどのようにSerilogで行うことができます。私は別のロガーインスタンスを作成し、これまでパフォーマンスカウンタを記録する場所を使用する必要がありますか? LibLogでこれを使用したいSerilog:異なるファイルにログ

+0

[Serilog - 複数のログファイル]の可能な重複(https://stackoverflow.com/questions/28292601/serilog-multiple-log-files) –

答えて

2

パフォーマンスカウンタのイベントには、特定のプロパティ値(LibLogのOpenMappedContext())または特定のタイプ/名前空間のタグを付けてください。

var log = LogProvider.For<MyApp.Performance.SomeCounter>() 
log.Info(...); 

Serilogを設定

、二番目のファイルにだけ必要なイベントを送信することができます適用されたフィルタと sub-logger

Log.Logger = new LoggerConfiguration() 
    .WriteTo.Logger(lc => lc 
     .Filter.ByExcluding(Matching.FromSource("MyApp.Performance")) 
     .WriteTo.File("first.json", new JsonFormatter())) 
    .WriteTo.Logger(lc => lc 
     .Filter.ByIncludingOnly(Matching.FromSource("MyApp.Performance")) 
     .WriteTo.File("second.json", new JsonFormatter())) 
    .CreateLogger(); 
+0

あなたの書き込みを読む:サブロガーとSerilogを2.0冒険に。わからない場合は、「MyApp.Performance」からのログも外部ロガーに送られますか?これらの特定のログをメインログファイルに書き込まないようにします。 – Shetty

+0

逆フィルタを持つ2つのサブログパイプラインがそれを行うはずです。答えを更新しています。 –

+0

それは私にとってはうまくいきました.JsonFormatterを削除する編集済みの答え。 – Shetty

関連する問題