#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>
строки в одну строку.