使用 log4net 时直接调用根记录器是一种好习惯吗?
Is it good practice to call the root logger directly when using log4net?
我想知道是否有任何问题或技术论据反对直接调用 log4net 的根记录器而不是通过另一个 logger/appender 并在根中引用它。
我想做的是直接获取根记录器,如:
this._logger = LogManager.GetLogger("Root");
根定义:
<root>
<level value="ALL" />
<appender-ref ref="Root.File"/>
</root>
它工作得很好,但我不确定这是否是一个好的做法。
我会说不好的做法,因为它偏离了标准用法,而且我看不到任何好处。
另外我不确定你是否完全理解它在做什么。您的 GetLogger 命令不是在寻找根记录器,但实际上是在寻找一个 称为 根的记录器。因为您没有定义,所以它将回退到使用根记录器。但是,如果您添加一个名为 root 的用户,如下所示,您可以看到这会禁用您的日志记录。
<root>
<level value="ALL" />
<appender-ref ref="Root.File"/>
</root>
<logger name="root">
<level value="OFF" />
</logger
我想知道是否有任何问题或技术论据反对直接调用 log4net 的根记录器而不是通过另一个 logger/appender 并在根中引用它。
我想做的是直接获取根记录器,如:
this._logger = LogManager.GetLogger("Root");
根定义:
<root>
<level value="ALL" />
<appender-ref ref="Root.File"/>
</root>
它工作得很好,但我不确定这是否是一个好的做法。
我会说不好的做法,因为它偏离了标准用法,而且我看不到任何好处。
另外我不确定你是否完全理解它在做什么。您的 GetLogger 命令不是在寻找根记录器,但实际上是在寻找一个 称为 根的记录器。因为您没有定义,所以它将回退到使用根记录器。但是,如果您添加一个名为 root 的用户,如下所示,您可以看到这会禁用您的日志记录。
<root>
<level value="ALL" />
<appender-ref ref="Root.File"/>
</root>
<logger name="root">
<level value="OFF" />
</logger