缺少任何已定义的接收器是禁用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?
我猜我想知道是否有某种"off“设置,所以调用Serilog的第一件事就是"if (off) return;",或者类似的东西?或者,缺乏任何定义的汇基本上是一样的吗?我的目标是配置这些东西,这样当我们“禁用”日志时,对Serilog的所有调用都会尽可能快。
发布于 2015-09-21 06:06:25
最好的选择是什么都不做;根本不创建LoggerConfiguration或分配Log.Logger。这将导致所有的Log方法做尽可能少的工作。
如果你需要一个ILogger,只需要抓取Log.Logger并传递它-默认情况下它也不会做任何事情,除非你给它分配了一些东西。
https://stackoverflow.com/questions/32652210
复制相似问题