在产品发布时禁用Serilog
本文关键字:Serilog 布时禁 | 更新日期: 2023-09-27 18:13:23
缺少任何已定义的接收器是禁用Serilog的正确方法吗?
我确实看到了这个问题:
如何关闭Serilog?
但是我更多的是关于如何在发布产品时配置Serilog,以便在默认情况下,在使用产品时不创建日志文件,并且调用Serilog的开销尽可能少。
我们使用app/web配置文件配置Serilog,所以在Debug构建中它看起来像这样:
<add key="serilog:minimum-level" value="Verbose" />
<add key="serilog:write-to:RollingFile.pathFormat"
value="%ProgramData%'Product'debug'AppName-{Date}.log" />
<add key="serilog:write-to:RollingFile.retainedFileCountLimit" value="10" />
这些行处理如下:
new LoggerConfiguration().ReadFrom.AppSettings()...
当我们生成与产品一起发布的应用/web配置文件时,从配置文件中删除任何sink以有效禁用Serilog是否足够?
我想我想知道是否有某种"关闭"设置,以便对Serilog的调用的第一件事是"if (off) return;",或者沿着这些行?还是说,没有任何明确的碳汇基本上是一样的?我的目标是配置一些东西,以便当我们"禁用"日志记录时,所有对Serilog的调用都尽可能快。
最好的选择就是什么都不做;不要创建LoggerConfiguration
或分配Log.Logger
。这将导致所有Log
方法做尽可能少的工作。
如果你需要一个ILogger
,只需抓取Log.Logger
并传递它-默认情况下它也不会做任何事情,除非你给它分配了一些东西。