我们使用 Serilog 通过 Windows 服务将项目记录到数据库中,并且用户希望能够进行手动运行,因此我们制作了一个按钮(在网页上)来调用相同的代码(作为一个模块,而不是服务本身)。
当我们添加代码来初始化日志时,代码将继续添加到数据库日志表中,它还会记录之后的所有 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);
...关闭注销。
关于c# - 如何关闭Serilog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30849166/