Я настраиваю регистраторы на наших серверах для ежедневного архивирования журналов. Мне также нужно убедиться, что отдельные файлы журналов не становятся слишком большими (скажем, 10 МБ на файл).
Ни один из них еще не работал, но сначала я хотел бы решить проблему размера файла.
Вот мой файл log4j.properties:
log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.rollingPolicy.fileNamePattern=./log/logging.%d.log.zip
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.TriggeringPolicy.maxFileSize=1000000
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Мы используем log4j 1.2.17, и теперь я добавил дополнительные функции log4j той же версии.
Когда я тестирую ведение журнала, он создает произвольно большие файлы. Я попробовал maxFileSize и MaxFileSize вместо maxFileSize, «10 МБ» вместо числа, но ничего не получилось.
Я также попытался установить свойство программно, хотя это усложнило бы задачу, поскольку у нас есть много классов, использующих регистратор.
Но это тоже не сработало. Оказывается, в моем экземпляре Logger нет приложений (?). Вот мой код:
logger = Logger.getLogger(LogTest.class);
// RollingFileAppender app = (RollingFileAppender) logger.getAppender("file");
// app.setMaxFileSize("1000000");
Enumeration allAppenders = logger.getAllAppenders();
System.out.println(allAppenders);
for (Enumeration<Object> iter = allAppenders; iter.hasMoreElements();) {
Object elem = iter.nextElement();
System.out.println(elem);
}
Результатом является нулевое перечисление:
org.apache.log4j.helpers.NullEnumeration@1161fded
Я не нашел другой пост, который был бы полезен для моей проблемы. Есть идеи?