Подтвердить что ты не робот

Наличие журнала в день

В настоящее время мое приложение использует log4net для регистрации ошибок, для этого используется web.config:

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file value="c:/paypal/logs/gateway.log" />
        <appendToFile value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="FileAppender" />
    </root>
</log4net>

Однако проблема заключается в том, что каждый день журналы всегда идут в gateway.log

Кто-нибудь знает способ иметь другой файл журнала в день с помощью log4net?

В идеале я не хочу вручную редактировать web.config каждую ночь с помощью запланированной задачи.

4b9b3361

Ответ 1

Вы должны использовать RollingFileAppender с помощью rollStyle Date и datePattern yyyyMMdd (это будет работать каждый день).

Пример конфигурации:

<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="c:/paypal/logs/gateway.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
    </layout>
</appender>

UPDATE: Я думаю, что лучший способ - включить дату в имя файла. И используйте значение datePattern, чтобы показывать, когда должен быть создан новый файл журнала.

<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
  <file type="log4net.Util.PatternString" value="c:/paypal/logs/gateway_%date{yyyyMMdd}.log" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyyMMdd" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
  </layout>
</appender>

В этом случае все ваши файлы будут иметь имя типа gateway_20120427.log.

Ответ 2

Как с помощью RollingFileAppender

<appender name="RollingLogFileAppenderOutput" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="c:\my.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd'.log'" />
    <layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="%date [%thread] %-5level - %message%newline" />
    </layout>
</appender>

изменить

Это весь раздел конфигурации log4net, который нужно выполнять каждый день, так же, как @lazyberezovsky ответил просто добавив log4net и root для уточнения

edit2 <file value="c:/paypal/logs/gateway_" /> это создаст файл с именем "gateway_", а в конце дня (2012-04-27) он будет переименован в gateway_20120427.log, а на следующий день (2012-04-28) он снова создаст file gateway_, и в конце он создаст gateway_20120428.log.

<log4net> 
    <appender name="RollingLogFileAppenderOutput" type="log4net.Appender.RollingFileAppender">
        <file value="c:/paypal/logs/gateway_" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value="yyyyMMdd'.log'" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level - %message%newline" />
        </layout>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingLogFileAppenderOutput" />
    </root>
</log4net>

Ответ 3

PreserveLogFileName

Этот параметр сохраняет расширение файла так же, как только вы катите журнал.

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="c:/paypal/logs/gateway.log" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value="_yyyyMMdd" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
        </layout>
        <preserveLogFileNameExtension value="true" />
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="FileAppender" />
    </root>
</log4net>