2017-07-20 8 views
1

アプリケーションはSerilogロギングとSeqシンク(ColoredConsoleとRollingFileシンクに加えて)でセットアップしました。すべてがうまくいっていますが、Seq。"controlLevelSwitch"をSerilog Seqシンクで動作させるにはどうすればいいですか?

私のロギングレベルスイッチは、開始最小レベルが "Verbose"に設定され、何かがseqに送信されることを確認します。

APIキーの設定では、最小レベルは「デバッグ」に設定され、seqは「デバッグ」レベル以上のイベントのみを期待どおりに表示します。

アプリケーション側ではすべてがログされ、最小ログレベルは変更されません。私はコンソール上で "Verbose"、seqシンクのローリングログファイルと私が設定した別のローリングログファイルを見ることができます。これは、 "debug"レベルのイベントをseqで受け取ったのか、それとも数分待っても変更されません。

これは私の設定です:

var levelSwitch = new LoggingLevelSwitch(LogEventLevel.Verbose); 
Log.Logger = new LoggerConfiguration() 
    .MinimumLevel.ControlledBy(levelSwitch) 
    .Enrich.WithExceptionDetails() 
    .WriteTo.ColoredConsole() 
    .WriteTo.RollingFile(@".\log\log-{Date}.txt") 
    .WriteTo.Seq("http://localhost:5341", bufferBaseFilename: @".\temp\seqlog", apiKey: "...", controlLevelSwitch: levelSwitch) 
    .CreateLogger(); 

Log.Logger.Verbose("TEST!!!"); 

答えて

0

いくつかのイベントがすでに配列に達するまで、スイッチは、配列シンクによって設定されません - レベル制御が瞬時ではありません。実際には、これは他のシンクからの出力に変化が見られるまでに数秒間かかることがあります。

+0

はい、私は知っているはずです。私は、デバッグレベルのイベントが入ってくるのを見て、その下位のものはすべてそのSeqによってそのAPIキーの設定に従って正しく除外されます。私が期待したのは、アプリ内の最小ログレベルも、最初のイベントがSeqに到着した後、または数分後にデバッグに変更されたことでした。それは起こりません。 – siabrac

+0

フォローアップありがとう。バックグラウンドレベルのチェックが意図したとおりに動作していないように見える - https://github.com/serilog/serilog-sinks-seq/issues/75を提起して固定し、シンクのバージョン3.3.3を間もなくリリースする予定です。 –

+1

ありがとうございます。私はupvotedしかし、私の評判は表示するにはまだ低いです:( – siabrac

関連する問題