C# 为产品发布禁用Serilog
缺少任何定义的接收器是否是禁用Serilog的正确方法 我确实看到了这个问题: 但我的重点是在发布产品时如何配置Serilog,这样在默认情况下,在使用产品时就不会创建任何日志文件,并且对Serilog的调用具有尽可能小的开销 我们使用app/web config文件配置Serilog,因此在调试版本中,它看起来如下所示:C# 为产品发布禁用Serilog,c#,config,serilog,C#,Config,Serilog,缺少任何定义的接收器是否是禁用Serilog的正确方法 我确实看到了这个问题: 但我的重点是在发布产品时如何配置Serilog,这样在默认情况下,在使用产品时就不会创建任何日志文件,并且对Serilog的调用具有尽可能小的开销 我们使用app/web config文件配置Serilog,因此在调试版本中,它看起来如下所示: <add key="serilog:minimum-level" value="Verbose" /> <add key="serilog:write-t
<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" />
当我们生成产品附带的app/web配置文件时,从配置文件中删除任何接收器是否足以有效禁用Serilog
我想我想知道是否有某种“off”设置,所以调用Serilog的第一件事就是“if(off)return;”,或者类似的东西?或者说缺乏任何定义的汇基本上是一样的吗?我的目标是进行配置,以便在“禁用”日志记录时,所有对Serilog的调用都尽可能快。最好的选择是什么都不做;根本不要创建
LoggerConfiguration
或分配Log.Logger
。这将导致所有Log
方法尽可能少做工作
如果您需要一个
ILogger
,只需抓取Log.Logger
并传递它-默认情况下它也不会做任何事情,除非您为它分配了一些内容。并不能真正回答问题。用户必须如何处理app.config文件才能禁用记录器?
new LoggerConfiguration().ReadFrom.AppSettings()...