Могу ли я использовать более 1 строки для одного и того же файла журнала в a jboss-log4j.xml ?

#jboss #log4j #logging

#jboss #log4j #ведение журнала

Вопрос:

Я работаю со своим первым сервером приложений jboss, и у меня возникли некоторые проблемы с файлами журнала. В настоящее время в программном обеспечении есть ошибка, из-за которой в файл журнала постоянно передаются ошибки, каждый день я получаю файл журнала размером 708 МБ, и это быстро заполняет пространство HD на сервере.

В jboss-log4j.xml У меня есть 2 <appender> строфы, одна из которых запускает файл журнала каждый день, а вторая ограничивает размер файлов журнала 10 МБ и хранит только последние 20 журналов. В настоящее время, похоже, работает только первая строка. Исходя из этого, я думаю, что у меня может быть только 1 <appender> строфа, и мне нужно объединить эти две….

Я на правильном пути? Если да, можете ли вы дать несколько советов, как я могу объединить эти две строки вместе?

 <!-- A time/date based rolling appender -->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
   <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
   <param name="File" value="${jboss.server.log.dir}/server.log"/>
   <param name="Append" value="false"/>

   <!-- Rollover at midnight each day -->
   <param name="DatePattern" value="'.'yyyy-MM-dd"/>

   <layout class="org.apache.log4j.PatternLayout">
      <!-- The default pattern: Date Priority [Category] Messagen -->
      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>

   </layout>
</appender>

<!-- A size based file rolling appender -->
<appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
 <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
 <param name="File" value="${jboss.server.log.dir}/server.log"/>
 <param name="Append" value="false"/>
 <param name="MaxFileSize" value="10MB"/>
 <param name="MaxBackupIndex" value="20"/>

 <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
 </layout>     
</appender>
  

Комментарии:

1. Пожалуйста, предоставьте полный набор приложений, которые у вас есть

2. @Heiko Rupp — Я пытаюсь опубликовать это, но SO по какой-то причине скрывает большую часть XML…. Если у вас есть возможность редактирования, взгляните на сообщение, и вы увидите там больше XML, чем показано

3. Вам нужно использовать функцию {} поверх редактора, чтобы правильно избежать этого. Тогда все должно быть в порядке

4. @Heiko Rupp — Это была опечатка, в некоторых строках было только 3 предшествующих пробела. Теперь все показано

Ответ №1:

У вас может быть более одного приложения — по умолчанию используется приложение file для файла журнала и другое для консоли.

Похоже, что в вашем коде вы записываете в один и тот же файл в обоих случаях, что, вероятно, не имеет особого смысла, а также не похоже на то, что вы хотите из приведенного вами описания.

Комментарии:

1. Но могу ли я использовать 2 для ФАЙЛА?

2. Да, я пытаюсь выполнить запись в один и тот же файл с обоими <appender> узлами. Возможно ли это? Как я уже упоминал, я новичок в jboss. Могу ли я объединить эти две <appender> строки вместе? Вот что я хотел бы, чтобы произошло: 1) новый файл журнала создавался ежедневно в полночь. 2) Файлы журнала не должны превышать 10 МБ 3) Сохранять на диске только последние 20 файлов журнала.

3. Даже если название подсказывает, похоже, что DailyRollingFileAppender не расширяет RollingFileAppender и не наследует атрибуты size и index. Поэтому я думаю, что это не сработает так, как хотелось бы. Это ограничение базовой библиотеки log4j.

Ответ №2:

Невозможно, чтобы два <appender> узла записывали данные в один и тот же name='FILE' файл. Также невозможно объединить эти две <appender> строки в одну строку.