Я использовал 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
Пожалуйста, предложите.
Файл 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
и перенаправить его в файл вместо того, чтобы сбрасывать его на стандартный вывод.