Lakmal Vithanage
Lakmal Vithanage

Reputation: 2777

Log4J intergration with Tomcat - catalina.out log file rotation

I'm using log4j version 2 as logger for Tomcat 8 and now the problem is catalina.out file is not rotating daily.My log4j.property file as follow,

log4j.rootLogger = INFO, CATALINA, CONSOLE

# Define all the appenders
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Encoding = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.CONSOLE = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CONSOLE.File = ${catalina.base}/logs/catalina.out
log4j.appender.CONSOLE.Append = true
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n


# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\
  INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\
  INFO, HOST-MANAGER

I changed this lines

log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Encoding = UTF-8 log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

to

log4j.appender.CONSOLE = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CONSOLE.File = ${catalina.base}/logs/catalina.out
log4j.appender.CONSOLE.Append = true
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

As suggested by augustin ghauratto in this link. But it didn't work for me.

How can i make catalina.out file to split and make new file daily.

Upvotes: 0

Views: 11751

Answers (1)

Christopher Schultz
Christopher Schultz

Reputation: 20862

You misunderstand how catalina.out is created. It's not handled by a logging framework like log4j. It's created by the shell through redirection of the standard output stream.

If you want to rotate it, check the Tomcat FAQ.

There's also this previous answer.

Upvotes: 6

Related Questions