2008-10-20 3 views
26

Я пытаюсь использовать log4net в приложениях ASP.NET с Visual Studio 2005. Я объявил экземпляр регистратору, как так:Как настроить log4net так, чтобы log.IsDebugEnabled был истинным?

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, чтобы я мог регистрировать только отладочные сообщения?

ответ

42

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

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

24

Да, сделайте это, как сказал Ансон. Кроме того, если вы звоните в Настройка библиотеки классов вы можете сделать это путем добавления атрибута к классу:

[assembly: XmlConfigurator(Watch = true)] 

и если вы используете log4net.config файл, используйте его как что вместо:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 
8

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

0

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

log4net.Config.XmlConfigurator.Configure();

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

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

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