2016-05-20 9 views
2

シンクを配線しようとしていますが、ローリングファイルシンクのデバッグメッセージがログに記録されていないようです(情報以上)。私の設定は間違っていますか?Serilog - AppSettings MinLevelが動作しない

<!-- Serilog Configuration --> 
<add key="serilog:using:Email" value="Serilog.Sinks.Email" /> 

<!-- Configure Serilog Email Sink --> 
<add key="serilog:write-to:Email" /> 
<add key="serilog:write-to:Email.mailServer" value="***" /> 
<add key="serilog:write-to:Email.toEmail" value="***" /> 
<add key="serilog:write-to:Email.fromEmail" value="***" /> 
<add key="serilog:write-to:Email.mailSubject" value="Comply360 Portal Endpoint (DEV)" /> 
<add key="serilog:write-to:Email.restrictedToMinimumLevel" value="Warning" /> 
<add key="serilog:write-to:Email.outputTemplate" value="{Timestamp:HH:mm:ss} [{Level}] [{SourceContext}] [{CorrelationId}] {Message}{NewLine}{Exception}" /> 

<!-- Configure Serilog RollingFile Sink --> 
<add key="serilog:write-to:RollingFile" /> 
<add key="serilog:write-to:RollingFile.restrictedToMinimumLevel" value="Debug" /> 
<add key="serilog:write-to:RollingFile.pathFormat" value="C:\Logs\comply360-portal-{Date}.txt" /> 
<add key="serilog:write-to:RollingFile.outputTemplate" value="{Timestamp:HH:mm:ss} [{Level}] [{SourceContext}] [{CorrelationId}] {Message}{NewLine}{Exception}" /> 

答えて

2

あなたRollingFileシンク設定自体で「間違って」は何もありません - あなたが意図したとおり、それは唯一のログレベルDebug以上(すなわち、それはVerboseメッセージを記録しません)とメッセージを記録します。

しかし、Serilogの最小ログレベルは一般的にInformationであるため、シンクに送信することさえありません。

は、あなたの場合には、少なくともDebugにSerilogのデフォルトの最小レベルを変更する必要があります。

<add key="serilog:minimum-level" value="Debug" /> 

最終的な設定は次のようになります。もちろん

<add key="serilog:minimum-level" value="Debug" /> 
<add key="serilog:write-to:RollingFile" /> 
<add key="serilog:write-to:RollingFile.restrictedToMinimumLevel" value="Debug" /> 
<add key="serilog:write-to:RollingFile.pathFormat" value="C:\Logs\log-portal-{Date}.txt" /> 
<add key="serilog:write-to:RollingFile.outputTemplate" value="{Timestamp:HH:mm:ss} [{Level}] [{SourceContext}] [{CorrelationId}] {Message}{NewLine}{Exception}" /> 

、場合後でVerbose以上のメッセージを記録するシンクを追加する場合は、最小レベルをVerboseに変更する必要があります。

つまり、serilog:minimum-levelは、すべてのシンクの中で最も低いレベルにする必要があります。

+0

本当に、シンクレベルで最小レベルを設定することはできませんか? – Marco

+0

と実際には私が自分のコードを投稿した理由です。デバッグ以上のレベルでロギングしていません。それは情報以上でログに記録されています(デフォルト) – Marco

+0

あなたは今何を言っているのか分かります。しかし、私のローリングファイルは実際にはログメッセージを残していましたが、グローバルminレベルを追加すると、すべてのシンクのトリックがかかりました。 – Marco

関連する問題