2012-01-23 3 views
2

Было ли что-то странное начинать со мной сегодня. У меня есть приложение asp.net mvc с настройкой log4net, и все работает нормально. Что-то должно измениться где-то, и теперь ничего не регистрируется (файл журнала не создается).Ошибка конфигурации Log4net

Вот мой global.asax.cx

protected void Application_Start() 
{ 
    log4net.Config.XmlConfigurator.Configure(); 
} 

Вот моя конфигурация в моем web.config:

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 
    <log4net> 
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="c:\logs\api\ApiLog.txt" /> 
     <appendToFile value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="FileAppender" /> 
    </root> 
    </log4net> 

По некоторым причинам файл c:\logs\api\apilog.txt никогда не будет создана. Однако, если я изменю свое application_start метод к этому он отлично работает:

log4net.Config.XmlConfigurator.Configure(new FileInfo("DirectPathToMy\web.config")); 

Любые идеи, почему призывающих Configure() не находит конфигурацию в моем web.config по умолчанию?

+2

Вы что раздел '' определен в вашем корневом файле '~/web.config', а не в' ~/Views/web.config'? –

ответ

2

Не знаете, почему ваш подход не работает, но проблема в том, что вам нужно убедиться, что он активирован в вашем проекте.

Я обычно ставлю это как опорный уровень сборки в моих AssemblyInfo.cs под/Свойства:

[сборка: log4net.Config.XmlConfigurator()]

Ссылка: http://logging.apache.org/log4net/release/manual/configuration.html

+0

Я не уверен, что вы подразумеваете под «активированным». Я вызываю свой метод Application_Startup. Этого недостаточно? Кажется, все сработало раньше. – Micah

+0

Это работает ... но почему не вызывает его из application_start? – Micah