Ответ 1
Перед вызовом LogManager.GetLogger("")
Вам нужно вызвать log4net.Config.XmlConfigurator.Configure(); В приложении ASP.NET вы, вероятно, захотите поместить этот вызов в Application_Start
Я пытаюсь использовать 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
всегда false.
Как настроить log4net, чтобы я мог регистрировать только отладочные сообщения?
Перед вызовом LogManager.GetLogger("")
Вам нужно вызвать log4net.Config.XmlConfigurator.Configure(); В приложении ASP.NET вы, вероятно, захотите поместить этот вызов в Application_Start
Да, сделай это, как сказал Энсон. Кроме того, если вы вызываете Configure в библиотеке классов, вы можете сделать это, добавив в свой класс атрибут:
[assembly: XmlConfigurator(Watch = true)]
и если вы используете файл log4net.config
, используйте вместо этого:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
Если вы используете отдельный файл конфигурации для log4net, сделайте следующее: после выполнения всех других инструкций по установке убедитесь, что u щелкнул правой кнопкой мыши по файлу в проводнике решений для визуальной студии, выберите свойства, разверните опцию "Дополнительно" группе, установите для параметра "Копировать в каталог вывода" значение "Копировать всегда". Это будет делать волшебство...:) приветствия!
Если вы устанавливаете log4net в коде, а не в файле конфигурации, вы можете вызвать log4net.Config.BasicConfigurator.Configure
до GetLogger
.
Используйте это любым способом перед использованием журнала:
log4net.Config.XmlConfigurator.Configure();
В App.Config настройки должны быть:
<root>
<level value="ALL" />
<appender-ref ref="AppenderName" />
</root>
VB.NET -
<Assembly: log4net.Config.XmlConfigurator(Watch:=True)>