3

缺少任何已定义的接收器是禁用 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 配置文件以随产品一起发布时,是否足以从配置文件中删除任何接收器以有效禁用 Serilog?

我想我想知道是否有某种“关闭”设置,以便调用 Serilog 所做的第一件事就是“如果(关闭)返回;”,或者类似的东西?还是缺少任何已定义的接收器基本上是一样的?我的目标是进行配置,以便在我们“禁用”日志记录时尽可能快地调用 Serilog。

4

1 回答 1

1

最好的选择是什么都不做;根本不要创建LoggerConfiguration或分配Log.Logger。这将导致所有Log方法做的工作尽可能少。

如果你需要一个ILogger,只需抓住Log.Logger并传递它 - 默认情况下它也不会做任何事情,除非你已经为它分配了一些东西。

于 2015-09-20T22:06:25.180 回答