2009-03-05 5 views
62

Я хочу, чтобы мой файл_журнала выглядеть примерно так: 2009-02-13.logLog4Net: Скользящий Appender файла, определить расширение

, но проблема в том, что я не могу найти какой-либо способ добавить .log.

Я пробовал много вещей, но ничего не помогает. Это то, что я так далеко:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="Logs/Log4Net/.log"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Date"/> 
    <datePattern value="yyyy-MM-dd" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> 
    </layout> 
</appender> 

ответ

53

Попробуйте добавить .log расширение к вашей дате шаблон, как это и удалить его из атрибута файла.

<datePattern value="yyyy-MM-dd.lo\g"/> 
... 
<staticLogFileName value="false" /> 
+7

Также помните, добавить

8

добавить «.lo \ г» до конца вашего datepattern

105

Другие ответы избежать „г“ в „бревном“, так как „г“ специальный символ в datePattern. Это не так, но я предпочитаю, чтобы обернуть весь набор без даты символов в одинарные кавычки, например:

<datePattern value="yyyy-MM-dd'.log'" /> 

Это дает те же результаты, но мне легче управлять. Таким образом, мне не нужно помнить, какие специальные символы являются особыми для datePattern (список длинный и разнообразный). Если я забуду одного персонажа, то я не рискую сорвать имена моих файлов; они все хорошо сбежали в массе.

+3

Я тоже предпочитаю этот подход. –

+1

Итак, какое у вас значение для ? – ssmith

+2

@ssmith: Оставьте «.log» с ''. Log4Net добавляет datepattern к значению файла, поэтому вам нужно расширение файла на первом. –

4

Это мой файл конфигурации xml. Путь к файлу журнала находится в теге «файл»

Это создаст файл журнала «2012-11-22.log» в папке «LogFiles» в папке маршрута моего веб-сайта.

ПРИМЕЧАНИЕ: Убедитесь, что папка существует в первую очередь!

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,  log4net"/> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="INFO"/> 
     <appender-ref ref="RollingFileAppender"/> 
    </root> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="LogFiles/"/> 
     <appendToFile value="true"/> 
     <rollingStyle value="Date"/> 
     <maxSizeRollBackups value="5"/> 
     <maximumFileSize value="10MB"/> 
     <datePattern value="yyyy-MM-dd'.log'" /> 
     <staticLogFileName value="false"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/> 
     </layout> 
    </appender> 
    </log4net> 
</configuration> 
15

log4net теперь также предоставляет PreserveLogFileNameExtension свойство, которое может заставить ваше .log расширение в конце имени файла соединения (в том числе дата шаблон и/или размер порядкового номера):

<file value="LogFiles/.log"/> 
<preserveLogFileNameExtension value="true" /> 
<datePattern value="yyyy-MM-dd" /> 
+0

Должен быть только на более новых версиях? Я не мог заставить этот параметр работать в моей системе. Я закончил использовать .log дважды, один раз в файле, и еще раз в datePattern :( – Sun

+1

Я полагаю, что он был добавлен в 1.2.12 –

 Смежные вопросы

  • Нет связанных вопросов^_^