Serilog - AppSettings MinLevel 不工作
Serilog - AppSettings MinLevel not working
我正在尝试连接我的接收器,但我的滚动文件接收器似乎没有记录我的调试消息(仅信息及以上)。我的配置有问题吗?
<!-- 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}" />
您的 RollingFile
接收器配置本身没有任何 "wrong" - 它只会记录日志级别 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
。
即serilog:minimum-level
应始终是所有接收器的最低级别。
我正在尝试连接我的接收器,但我的滚动文件接收器似乎没有记录我的调试消息(仅信息及以上)。我的配置有问题吗?
<!-- 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}" />
您的 RollingFile
接收器配置本身没有任何 "wrong" - 它只会记录日志级别 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
。
即serilog:minimum-level
应始终是所有接收器的最低级别。