Как добавить пустую строку в файл журнала с помощью log4net? - PullRequest
10 голосов
/ 27 марта 2010

Я использовал RollingFileAppender. И я хочу добавить пустую строку в журнал, когда моя программа запускается. Как это сделать? Спасибо.

Edit: ОК, спасибо вам всем. Извините за запутанный вопрос, который я задал. Позвольте мне сделать некоторые объяснения. Я настраиваю log4net следующим образом:

<log4net>
  <appender name="MyFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="ClientLog.log" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%date{yyyy/MM/dd HH:mm:ss},%5p,%m%n" />
    </layout>
  </appender>

  <logger name="GlobalUse" >
    <level value="Info"/>
    <appender-ref ref="MyFileAppender" />
  </logger>

</log4net>

и журнал будет:

2010/03/27 13:55:27, INFO, Program start.
2010/03/27 13:55:29, INFO, Program end.
2010/03/27 13:56:30, INFO, Program start.
2010/03/27 13:56:32, INFO, Program end.

Я надеюсь, что журнал будет выглядеть так:

2010/03/27 13:55:27, INFO, Program start.
2010/03/27 13:55:29, INFO, Program end.

2010/03/27 13:56:30, INFO, Program start.
2010/03/27 13:56:32, INFO, Program end.

2010/03/27 13:57:30, INFO, Program start.
...

Есть идеи? Спасибо.

Ответы [ 4 ]

20 голосов
/ 29 августа 2013

Выбранный ответ НАМНОГО сложнее, чем нужно. Я не уверен, что его не было, когда вопрос был задан изначально, но правильный способ сделать это с помощью <header> или <footer> в макете приложения. Примерно так:

<layout type="log4net.Layout.PatternLayout">
  <footer value="&#13;&#10;" />
  <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>

Это вставит пустую строку в качестве нижнего колонтитула для каждого запуска журнала. Более подробно здесь: http://logging.apache.org/log4net/release/faq.html#layout-header-xml-newlines

6 голосов
/ 27 марта 2010

log.debug (Environment.Newline);

3 голосов
/ 27 марта 2010

Вам понадобится специальный аппендер. Здесь у вас есть пример конфигурации


<log4net>
  ...
  <appender name="MyRollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="C:\temp\mylog.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <staticLogFileName value="true" />
    <maximumFileSize value="2MB" />
    <maxSizeRollBackups value="20" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%message%newline" />
    </layout>
  </appender>

  <logger name="MyLogger">
    <level value="Info" />
    <appender-ref ref="MyRollingLogFileAppender" />
  </logger>  
  ...
</log4net>

Эта конфигурация позволяет вставлять БЕЛУЮ ЛИНИЮ, ПОЛНОСТЬЮ БЕЛУЮ ()

И код для входа будет

LogManager.GetLogger("MyLogger").Info("");

Последний комментарий: это позволяет вам делать то, что я думаю, что вы хотите, но я бы не стал делать это в своей собственной разработке :-), если я неправильно понял ваш вопрос, пожалуйста, дайте мне знать

РЕДАКТИРОВАТЬ1 Это приложение / регистратор ДОБАВЛЕНО в существующую конфигурацию. Он будет использоваться ТОЛЬКО для создания нужной вам белой линии. Для остальной части ведения журнала вы должны использовать ранее существовавший регистратор / appender,

2 голосов
/ 16 января 2013

Изменение

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%message%newline" />
</layout>

с

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%message%newline%newline" />
</layout>

Это добавит две строки в конце файла. Первый будет там как новая строка, второй - отправной точкой следующего журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...