The following steps describe configuring log4j to output Tomcat's internal logging.
- Create a file called
log4j.properties
with the following content and save it into$CATALINA_BASE/lib
log4j.rootLogger = INFO, CATALINA
# 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.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
# 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
- Download Log4J (Tomcat requires v1.2.x).
-
Download or build
tomcat-juli.jar
andtomcat-juli-adapters.jar
that are available as an "extras" component for Tomcat. See Additional Components documentation for details.This
tomcat-juli.jar
differs from the default one. It contains the full Apache Commons Logging implementation and thus is able to discover the presence of log4j and configure itself. -
If you want to configure Tomcat to use log4j globally:
- Put
log4j.jar
andtomcat-juli-adapters.jar
from "extras" into$CATALINA_HOME/lib
. - Replace
$CATALINA_HOME/bin/tomcat-juli.jar
withtomcat-juli.jar
from "extras".
- Put
-
If you are running Tomcat with separate $CATALINA_HOME and $CATALINA_BASE and want to configure to use log4j in a single $CATALINA_BASE only:
- Create
$CATALINA_BASE/bin
and$CATALINA_BASE/lib
directories if they do not exist. - Put
log4j.jar
andtomcat-juli-adapters.jar
from "extras" into$CATALINA_BASE/lib
- Put
tomcat-juli.jar
from "extras" as$CATALINA_BASE/bin/tomcat-juli.jar
- If you are running with a security manager, you would need to edit the
$CATALINA_BASE/conf/catalina.policy
file to adjust it to using a different copy of tomcat-juli.jar.
- Create
Delete
$CATALINA_BASE/conf/logging.properties
to prevent java.util.logging generating zero length log files.Start Tomcat
1、查找发现网络说需要配置:修改tomcat/conf/目录下context.xml 将<Context>改为<Context swallowOutput="true">
但是测试发现并没有什么特别效果;