Как мне настроить log4net, чтобы log.IsDebugEnabled был равен true? - PullRequest
28 голосов
/ 21 октября 2008

Я пытаюсь использовать log4net в приложении ASP.NET с Visual Studio 2005. Я объявил экземпляр регистратора следующим образом:

Private Shared ReadOnly log As ILog = LogManager.GetLogger("")

Я пытаюсь использовать его следующим образом:

If log.IsDebugEnabled Then
   log.Debug("Integration Services Constructed")
End If

Вот моя конфигурация:

<log4net>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingFileAppender" />
    </root>

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="..\\logs\\logfile.log"/>
        <appendToFile value="true"/>
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="10"/>
        <maximumFileSize value="1MB"/>
        <staticLogFileName value="true"/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="FATAL" />
        </filter>
    </appender>

</log4net>

К сожалению, log.IsDebugEnabled всегда ложно.
Как настроить log4net, чтобы я мог регистрировать только сообщения отладки?

Ответы [ 6 ]

43 голосов
/ 21 октября 2008

Перед вызовом LogManager.GetLogger ("")

Вы должны вызвать log4net.Config.XmlConfigurator.Configure (); В приложении ASP.NET вы, вероятно, захотите сделать этот вызов в Application_Start

25 голосов
/ 21 октября 2008

Да, делай так, как сказал Энсон. Кроме того, если вы вызываете Configure в библиотеке классов, вы можете сделать это, добавив атрибут в ваш класс:

[assembly: XmlConfigurator(Watch = true)]

и, если вы используете log4net.config файл, используйте его следующим образом:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
9 голосов
/ 02 декабря 2012

Если вы используете отдельный файл конфигурации для log4net, сделайте следующее: выполнив все остальные инструкции по установке, убедитесь, что щелкните правой кнопкой мыши файл в обозревателе решений Visual Studio, выберите свойства, разверните параметр «Дополнительно» группу, установите значение «Копировать в выходной каталог» как «Копировать всегда». Это сделает волшебство ... :) ура !!

2 голосов
/ 05 ноября 2014

Если вы настраиваете log4net в коде, а не в файле конфигурации, вы можете позвонить log4net.Config.BasicConfigurator.Configure до GetLogger.

1 голос
/ 20 марта 2014

VB.NET -

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 
0 голосов
/ 10 февраля 2014

Используйте это любым способом перед использованием журнала:

log4net.Config.XmlConfigurator.Configure ();

В App.Config настройки должны быть:

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>
...