使用 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