Jer*_*oen 5 .net c# logging serilog
使用log4net,可以在运行时通过更改app.config文件来更改日志记录设置。
<add key="log4net.Config.Watch" value="True" />
Run Code Online (Sandbox Code Playgroud)
我的问题很简单:是否可以为Serilog做到这一点?
我已经阅读了LoggingLevelSwitch()类,但看起来只能通过代码进行更改。现在当然可以自己编程了,但是我正在寻找Serilog编写的解决方案。
您无法在运行时通过更改 app.config 来更改记录器配置: log4net 文档
由于 System.Configuration API 不支持重新加载配置文件,因此无法使用 log4net.Config.XmlConfigurator.ConfigureAndWatch 方法监视配置设置。使用 System.Configuration API 读取配置数据的主要优点是它比直接访问配置文件需要更少的权限。
而你不能用 Serilog 做到这一点
正如您提到的,日志级别可以在运行时配置,来源:
var levelSwitch = new LoggingLevelSwitch();
levelSwitch.MinimumLevel = LogEventLevel.Warning;
// configuring the logger using log level switch
var log = new LoggerConfiguration()
.MinimumLevel.ControlledBy(levelSwitch)
.WriteTo.ColoredConsole()
.CreateLogger();
// and you can switch the log level later on
levelSwitch.MinimumLevel = LogEventLevel.Verbose;
Run Code Online (Sandbox Code Playgroud)
您可以在此处看到一些用于更改水槽的选项。