Tomcat не входит в catalina.out после ротации журнала с использованием log4j в среде Linux

1

Я использовал log4j для вращения catalina.out. После первого поворота журнала tomcat начал регистрироваться в только что созданном файле log4j, а не каталинировать его в среде linux. Вся вещь прекрасно работает в среде Windows.

Здесь мои log4j.properties

log4j.rootLogger=ALL, file

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/catalina.out
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[Java] %d{yyyy-MM-dd HH:mm:ss} - %5p - %c{1} : Line No. %L - %m%n
log4j.appender.file.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.FILE.Append=true

Пожалуйста, предложите.

  • 0
    Использует ли сам tomcat log4j для регистрации сообщений?
  • 0
    @Kenster НЕТ У меня так много развернутых приложений, которые пишут в catalina.out (через System.out.Println).
Показать ещё 1 комментарий
Теги:
tomcat
logging
log4j

1 ответ

2

Файл catalina.out фактически создается перенаправлением вывода из оболочки при запуске Tomcat с помощью bin/catalina.sh и друзей. Если вы попытаетесь повернуть этот файл с помощью log4j, вы скроете этот файл с помощью log4j-журналов. tomcat все еще регистрируется в старой каталинии, которая больше не существует.

Вы должны указать log4j в другом файле журнала и вообще не вращать catalina.out. Если вы абсолютно должны вращать catalina.out, используйте другую технику.

Если ваш catalina.out заполняется мусором System.out.println из приложений, прочитайте о опции swallowOutput в Tomcat. Это позволит захватить System.out и System.err и перенаправить его в файл вместо того, чтобы сбрасывать его на стандартный вывод.

  • 0
    Спасибо за проявленный интерес. Сначала я не могу исправить эти приложения, и теперь tomcat впервые регистрируется во вновь созданном файле с помощью log4j.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню