【问题标题】:Disable Serilog for product release为产品发布禁用 Serilog
【发布时间】:2015-09-21 06:06:25
【问题描述】:

缺少任何已定义的接收器是禁用 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()...

当我们生成应用程序/网络配置文件以随产品一起提供时,是否足以从配置文件中删除任何接收器以有效禁用 Serilog?

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

【问题讨论】:

    标签: c# config serilog


    【解决方案1】:

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

    如果您需要 ILogger,只需抓住 Log.Logger 并将其传递 - 默认情况下它也不会执行任何操作,除非您为其分配了某些内容。

    【讨论】:

    • 并没有真正回答这个问题。用户需要用 app.config 文件做什么才能禁用记录器?
    猜你喜欢
    • 2020-07-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    相关资源
    最近更新 更多