有没有办法通过appSetting配置多个Serilog RollingFiles?有没有办法通过appSetting配置配置多个Serilog RollingFiles
我想为信息和错误级别创建单独的日志文件。
有没有办法通过appSetting配置多个Serilog RollingFiles?有没有办法通过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"/>
谢谢您的回答。尽管你指出了我正确的方向,但我试过了但没有奏效。 我不得不看一下代码,找出为什么它没有拿起配置。代码是: '_settingPrefix = settingPrefix == null? “serilog:”:string.Format(“{0}:serilog:”,settingPrefix); ' 所以我必须提供如下前缀: –
wali
在上面的注释中,“custom”是前缀在API中使用即。 '.ReadFrom.AppSettings(settingPrefix:“custom”)' – wali
谢谢 - 修正了这个例子。 –