Могу ли я иметь более 1 строфы ‹appender› для одного и того же файла журнала в jboss-log4j.xml?

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

В 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] Message\n -->
      <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>

person ProfessionalAmateur    schedule 28.04.2011    source источник
comment
Пожалуйста, предоставьте полный набор приложений, которые у вас есть   -  person Heiko Rupp    schedule 28.04.2011
comment
@Heiko Rupp - я пытаюсь опубликовать это, но SO по какой-то причине скрывает большую часть XML .... Если у вас есть возможность редактирования, посмотрите на сообщение, и вы увидите там больше XML, чем то, что показывает   -  person ProfessionalAmateur    schedule 28.04.2011
comment
Вам нужно использовать функцию {} в верхней части редактора, чтобы избежать этого. Тогда все должно быть в порядке   -  person Heiko Rupp    schedule 28.04.2011
comment
@Heiko Rupp - это была опечатка, в некоторых строках было только 3 предшествующих пробела. Это все показано сейчас   -  person ProfessionalAmateur    schedule 28.04.2011


Ответы (2)


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

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

person Heiko Rupp    schedule 28.04.2011
comment
А можно мне 2 для ФАЙЛА? - person ProfessionalAmateur; 28.04.2011
comment
Да, я пытаюсь записать в один и тот же файл оба узла <appender>. Это возможно? Как я уже говорил, я новичок в jboss. Могу ли я объединить эти два <appender> вместе? Вот что я хотел бы сделать: 1) новый файл журнала, созданный ежедневно в полночь. 2) Файлы журнала не должны превышать 10 МБ. 3) Сохраняйте на диске только последние 20 файлов журнала. - person ProfessionalAmateur; 28.04.2011
comment
Даже если название предполагает, похоже, что DailyRollingFileAppender не расширяет RollingFileAppender и не наследует атрибуты размера и индекса. Поэтому я думаю, что это не сработает так, как хотелось бы. Это ограничение базовой библиотеки log4j. - person Heiko Rupp; 28.04.2011

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

person ProfessionalAmateur    schedule 05.05.2011