Вот моя web.config информация:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<root>
<level value="ALL" />
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\temp\log-file.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.SimpleLayout" />
</appender>
</log4net>
...
Вот код, который инициализирует регистратор:
protected void SendMessage()
{
log4net.Config.XmlConfigurator.Configure();
ILog log = LogManager.GetLogger(typeof(Contact));
...
log.Info("here we go!");
log.Debug("debug afasf");
...
}
Это не работает, независимо от того, что я, кажется, делаю. Я ссылаюсь на 'log4net.dll' правильно, и путем отладки приложения I видят, что объект журнала становится инициированным правильно. Это - asp.net 3,5 веб-проекта платформы. Какие-либо идеи/предложения?
Я думал первоначально, что эта ошибка может произойти из-за файла, пишут право ограничения, но это, кажется, не имеет место (или таким образом, я думаю).
Я нашел ответ: мне нужен тег requirePermission = "false" в моем разделе конфигурации web.config.
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" **requirePermission="false"**/>
</configSections>
Насколько я понимаю, вам не хватает приложения для root:
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
Можно ли запустить Debug View на веб-сервере?
Если да, то вы можете увидеть, сообщает ли log4net о каких-либо ошибках (например, об ошибке доступа или ошибке чтения файла конфигурации)