所有 Log4net IsErrorEnabled 和兄弟属性 return false

All Log4net IsErrorEnabled and sibling properties return false

我有以下代码:

public void LoggingAI(Exception ex)
{   
    var log = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType));
    XmlConfigurator.Configure();

    if (log.IsInfoEnabled)
    {
        log.Error(ex);
    }
}

我在 web.config

中有以下代码
<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
    <root>
        <level value="Info"/>
    </root>
</log4net>

不明白为什么所有的属性,log.IsInfoEnabledlog.IsErrorEnabled,等等都是false

我是不是漏掉了什么?

在 Log4Net 中使用任何东西之前调用 Configure()。

无法重现您的情况:

首先将以下内容添加到配置部分:

<configSections>
<!--- Other Stuff here --->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>

下面是一个示例 Log4Net 部分配置:

<log4net>
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="INFO" />
        <foreColor value="Green, HighIntensity" />
      </mapping>
      <mapping>
        <level value="DEBUG" />
        <foreColor value="Cyan, HighIntensity" />
      </mapping>
      <mapping>
        <level value="WARN" />
        <foreColor value="Yellow, HighIntensity" />
      </mapping>
      <mapping>
        <level value="ERROR" />
        <foreColor value="Red, HighIntensity" />
      </mapping>
      <mapping>
        <level value="FATAL" />
        <foreColor value="Yellow, HighIntensity" />
        <backColor value="Red" />
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %class.%method%newline%message%newline" />
      </layout>
    </appender>          

    <!-- Setup the root category, add the appenders and set the default level -->
    <root>
      <level value="INFO" />
      <appender-ref ref="ColoredConsoleAppender" />
    </root>    
  </log4net>