缺少定义的接收器是否是禁用Serilog的正确方法?
我确实看到了这个问题:
How to turn off 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()...
当我们生成产品随附的app / web配置文件时,是否足以从配置文件中删除所有接收器以有效禁用Serilog?
我想我想知道是否存在某种“关闭”设置,以便调用Serilog的第一件事就是“如果(关闭)return;”,或者类似的东西?还是缺少定义的接收器基本上是一回事?我的目标是进行配置,以便在我们将日志记录为“禁用”时对Serilog的所有调用都尽可能快。
最佳答案
最好的选择是什么都不做。完全不要创建LoggerConfiguration
或分配Log.Logger
。这将导致所有Log
方法所做的工作尽可能少。
如果需要ILogger
,只需抓住Log.Logger
并将其传递-默认情况下,它也不会执行任何操作,除非您已为其分配了某些内容。
关于c# - 禁用Serilog产品发布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32652210/