log4net RollingFileAppender и IIS 7.5

Я пытаюсь использовать log4net с RollingFileAppender на IIS 7.5/Server 2008 R2. Однако конфигурация из моего старого окна IIS 6/Server 2003 больше не работает, я просто не вижу никаких создаваемых файлов журнала, вот что у меня есть:

В Web.config (внутри <configSections>)

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

В том же файле (внутри <configuration>)

<log4net>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
            </layout>
        </appender>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="..\\logs\\App" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <param name="StaticLogFileName" value="false" />
      <datePattern value=".yyyyMMdd.lo\g" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date | [%thread] | %-5level | %logger | %message %newline" />
      </layout>
    </appender>
    <logger name="AppLogger" additivity="false">
      <level value="All"/>
      <appender-ref ref="ConsoleAppender"/>
      <appender-ref ref="LogFileAppender"/>
    </logger>
</log4net>

Наконец внутри Global.asax у меня есть:

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

Это работало на сервере 2003, и я могу выполнить обычную процедуру получения ссылки на регистратор и вызова различных методов (отладка, ошибка и т. д.). В IIS 7.5/Server 2008 весь код выполняется правильно (т. е. все страницы выглядят нормально), но в каталоге вывода журналов нет журналов.

Кто-нибудь видел это раньше / нашел обходной путь?

Спасибо!


person debracey    schedule 01.08.2011    source источник


Ответы (2)


Скорее всего, это проблема с разрешениями, когда пользователь (ASPNET), работающий в процессе записи файлов журнала, не имеет прав на запись в тот каталог, в который вы пытаетесь войти. Вы должны убедиться, что это у пользователя есть права на запись в папку в вашей конфигурации.

person Cole W    schedule 01.08.2011
comment
Я мог бы поклясться, что проверил это, но я перепроверил это, и, как вы указали, мне нужно было добавить разрешения на изменение/запись для учетной записи пользователя IIS (это IIS_IUSRS, а не ASPNET). Кажется, теперь работает... Спасибо! - person debracey; 02.08.2011
comment
Да, я не был точно уверен в пользователе. Спасибо что подметил это. - person Cole W; 02.08.2011

Остерегайтесь относительного пути к файлу журнала.
Попробуйте использовать абсолютный путь к папке с правильными привилегиями. пример:

<file value="C:\\logs\\App" />
person Javier Sanchez    schedule 02.08.2011