Все свойства log4net iserrorenabled и sibling возвращают 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.IsInfoEnabled, log.IsErrorEnabled и т. д., Все false.

Я что-то упустил?

Да, вам не хватает конфигурации Log4Net. Где приложения. Кроме того, XmlConfigurator должен быть первой выполняемой строкой, и только после этого вы должны вызывать GetLooger.

Prateek Shrivastava 26.10.2018 08:38

Я не использую никаких приложений. Я использую простой log4net Nuget.

Titi 26.10.2018 08:40

Куда фреймворк Log4Net будет писать журналы ?? Приложения - это обработчики, которые помогают вам войти в файл, консоль, базу данных или Smtp и т. д.

Prateek Shrivastava 26.10.2018 08:43

Я добавил Application Insight Appaneder. Но все та же проблема. Невозможно получить значение Root> Level

Titi 26.10.2018 08:49

всегда Ошибка включена. Не знаю почему.

Titi 26.10.2018 08:57

В моем первом комментарии было ваше исправление. :)

Prateek Shrivastava 26.10.2018 08:57

У меня есть Xmlconfiguration до GetLogger. По-прежнему сталкивается с той же проблемой.

Titi 26.10.2018 08:59

Невозможно воспроизвести вашу ситуацию. Для информационного уровня включен. Все уровни трассировки, кроме отладки, истинны. Смотрите обновленный снимок экрана в моем ответе. Какие версии .Net и Log4Net вы используете?

Prateek Shrivastava 26.10.2018 09:02

Для информации, все верно, кроме отладки. Для Error (Error и Fatal верны) все неверны.

Titi 26.10.2018 09:04

Ах ... значит, вы не осознаёте Иерархию. Его Отладка <Информация <Предупреждение <Ошибка <Неустранимая. Таким образом, какой бы уровень трассировки вы ни включили в appConfig и выше, это ON / True / Enabled. Все нижние отключены.

Prateek Shrivastava 26.10.2018 09:05

Значит, это ожидаемое поведение?

Titi 26.10.2018 09:07

да. Очень многого ждал.

Prateek Shrivastava 26.10.2018 09:07

Позвольте нам продолжить обсуждение в чате.

Titi 26.10.2018 10:43
3
13
97
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вызовите Configure (), прежде чем использовать что-либо в Log4Net.

enter image description here

Невозможно воспроизвести вашу ситуацию:

enter image description here

Сначала добавьте в разделы конфигурации следующее:

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

Другие вопросы по теме