Serilog相当于log4net.Config.Watch吗?

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编写的解决方案。

Hoo*_*ini 0

您无法在运行时通过更改 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)

您可以在此处看到一些用于更改水槽的选项。