有没有办法通过appSetting配置配置多个Serilog RollingFiles
Is there a way to configure multiple Serilog RollingFiles through appSetting configuration
有没有办法通过appSetting配置多个Serilog RollingFiles?
我想为信息和错误级别创建单独的日志文件。
不直接 - 可以使用像这样的设置前缀:
.ReadFrom.AppSettings()
.ReadFrom.AppSettings(settingPrefix: "2")
然后添加额外的接收器,例如:
<add key="2:serilog:write-to:RollingFile.pathFormat" value="..." />
将其正确地添加到应用程序设置配置提供程序中已经 "TODO" 一段时间了。
如果可以在代码中配置接收器,那可能就是可行的方法。
在appsettings中配置多个日志非常简单,任务是使用过滤器。我花了将近 3 个小时试图弄清楚如何实现这一目标。
我最后做了以下事情:
Startup.cs / Global.asax.cs
Log.Logger = new LoggerConfiguration()
.WriteTo
.Logger(x => x.Filter
.ByIncludingOnly(logEvent => logEvent.Level == Serilog.Events.LogEventLevel.Error)
.ReadFrom
.AppSettings("error"))
.WriteTo
.Logger(x => x.Filter
.ByIncludingOnly(logEvent => logEvent.Level == Serilog.Events.LogEventLevel.Information)
.ReadFrom
.AppSettings("info")).CreateLogger()
Web.Config
<add key ="error:serilog:using:RollingFile" value="Serilog.Sinks.RollingFile"/>
<add key ="error:serilog:write-to:RollingFile.pathFormat" value="C:\log\error {Date}.txt"/>
<add key ="error:serilog:write-to:RollingFile.formatter" value="Serilog.Formatting.Json.JsonFormatter"/>
<add key ="info:serilog:using:RollingFile" value="Serilog.Sinks.RollingFile"/>
<add key ="info:serilog:write-to:RollingFile.pathFormat" value="C:\log\info {Date}.txt"/>
<add key ="info:serilog:write-to:RollingFile.formatter" value="Serilog.Formatting.Json.JsonFormatter"/>
有没有办法通过appSetting配置多个Serilog RollingFiles?
我想为信息和错误级别创建单独的日志文件。
不直接 - 可以使用像这样的设置前缀:
.ReadFrom.AppSettings()
.ReadFrom.AppSettings(settingPrefix: "2")
然后添加额外的接收器,例如:
<add key="2:serilog:write-to:RollingFile.pathFormat" value="..." />
将其正确地添加到应用程序设置配置提供程序中已经 "TODO" 一段时间了。
如果可以在代码中配置接收器,那可能就是可行的方法。
在appsettings中配置多个日志非常简单,任务是使用过滤器。我花了将近 3 个小时试图弄清楚如何实现这一目标。
我最后做了以下事情:
Startup.cs / Global.asax.cs
Log.Logger = new LoggerConfiguration()
.WriteTo
.Logger(x => x.Filter
.ByIncludingOnly(logEvent => logEvent.Level == Serilog.Events.LogEventLevel.Error)
.ReadFrom
.AppSettings("error"))
.WriteTo
.Logger(x => x.Filter
.ByIncludingOnly(logEvent => logEvent.Level == Serilog.Events.LogEventLevel.Information)
.ReadFrom
.AppSettings("info")).CreateLogger()
Web.Config
<add key ="error:serilog:using:RollingFile" value="Serilog.Sinks.RollingFile"/>
<add key ="error:serilog:write-to:RollingFile.pathFormat" value="C:\log\error {Date}.txt"/>
<add key ="error:serilog:write-to:RollingFile.formatter" value="Serilog.Formatting.Json.JsonFormatter"/>
<add key ="info:serilog:using:RollingFile" value="Serilog.Sinks.RollingFile"/>
<add key ="info:serilog:write-to:RollingFile.pathFormat" value="C:\log\info {Date}.txt"/>
<add key ="info:serilog:write-to:RollingFile.formatter" value="Serilog.Formatting.Json.JsonFormatter"/>