2016-05-20 5 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, поэтому он даже не отправляется в вашу раковину.

Вы должны изменить минимальный по умолчанию уровень Serilog по крайней мере Debug, в вашем случае:

<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.

i.e. serilog:minimum-level всегда должен быть самым низким уровнем от всех ваших раковин.

+0

Действительно, вы не можете установить минимальный уровень на уровне раковины? – Marco

+0

и на самом деле именно поэтому я разместил свой код. он не регистрируется на уровне отладки или более высокого уровня. он регистрируется в информации или выше (по умолчанию) – Marco

+0

Я вижу, что вы сейчас говорите. тем не менее, мой файл переполнения действительно по-прежнему записывал сообщения, но добавление глобального минимального уровня делало трюк для всех моих приемников. – Marco