c# – 如何关闭Serilog?

我们使用Serilog将项目记录到带有Windows服务的数据库中,并且用户希望能够进行手动运行,因此我们创建了一个按钮(在网页上)来调用相同的代码(作为模块,而不是服务本身).

当我们在代码中添加初始化日志以便代码将继续添加到db日志表时,它也会在此之后记录所有http流量.因此,在运行此代码之后,我们希望“关闭”在Web服务器上运行的Logger.有一个简单的方法吗?

Log.Logger = new LoggerConfiguration()
       .WriteTo.MSSqlServer(ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString,
                "LOGS")
       .CreateLogger();
可以使用LoggingLevelSwitch在运行时修改日志级别:

var ls = new LoggingLevelSwitch();

Log.Logger = new LoggerConfiguration()
   .MinimumLevel.ControlledBy(ls)
   .WriteTo.MSSqlServer(...)
   .CreateLogger();

记录最初将位于信息级别,您可以通过交换机进行更改.

Serilog没有定义Off级别,但您可以使用以下方式对其进行近似:

ls.MinimumLevel = ((LogEventLevel) 1 + (int) LogEventLevel.Fatal);

…关闭注销

翻译自:https://stackoverflow.com/questions/30849166/how-to-turn-off-serilog

转载注明原文:c# – 如何关闭Serilog?