log4net RollingFileAppender и IIS 7.5 - PullRequest
       27

log4net RollingFileAppender и IIS 7.5

2 голосов
/ 01 августа 2011

Я пытаюсь использовать 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();
}

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

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

Спасибо!

Ответы [ 2 ]

7 голосов
/ 01 августа 2011

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

0 голосов
/ 02 августа 2011

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

<file value="C:\\logs\\App" />
...