官方下载地址:https://tomcat.apache.org/download-70.cgi
下载的是zip版本:apache-tomcat-7.0.69.zip
按官方文档来操作:
https://tomcat.apache.org/tomcat-7.0-doc/logging.html
- 新建文件叫
log4j.properties
,内容见文未(复制的官网上的)放入$CATALINA_BASE/lib
下。 - 下载log4j,需要
v1.2.x
,下载地址:https://logging.apache.org/log4j/1.2/download.html,下载的zip版本log4j-1.2.17.zip。解压出 log4j-1.2.17.jar。 - 下载
tomcat-juli.jar
和tomcat-juli-adapters.jar
。详见附加组件文档,下载地址与上面下载tomcat的地址一样。不过是Extrax
标记下。 - 把
log4j.jar
和tomcat-juli-adapters.jar
放入$CATALINA_HOME/lib
. - 用
tomcat-juli.jar
替换$CATALINA_HOME/bin/tomcat-juli.jar
. - 删除
$CATALINA_BASE/conf/logging.properties
免得java.util.logging
生成0长度的日志文件。 启动Tomcat.
但按上面操作之后,却不能正常的打印日志。显示:
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.Catalina).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
logs文件夹下,多了五个日志文件。两个有内容:catalina.out
,localhost
。catalina.out中就是上面的话。
localhost中就是contextInitialized等记录。
当我把上面的log4j.properties改名了,再启动tomcat时,logs里面就只有一个文件了。内容空。
说明log4j.properties还是起作用的。
但输不出日志。
附:
涉及文件列表:
- apache-tomcat-7.0.69.zip,MD5: 296A27D0CC455D41AB5746A6BA34DACA
- log4j-1.2.17.zip,MD5: 5BCF80352B7D622DF0DBCB44E50CF0BB
- log4j-1.2.17.jar, MD5: FB87BD84E336CA3DC6B6C108F51BF25E
- tomcat-juli.jar, MD5: 9F57B2D40F301891BA6C2EC3DDCE5C85
- tomcat-juli-adapters.jar, MD5: FD1B9A734EC046565122595A92B6A054
log4j.properties的内容
og4j.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
用于重现的复制文件脚本:
import shutil
import os
import sys
catalina_base = "C:/apache-tomcat-7.0.69/"
# move log4j.properties to $CATALINA_BASE/lib
shutil.copyfile("log4j.properties",catalina_base+"lib/log4j.properties")
# move log4j.jar and tomcat-juli-adapters.jar to $CATALINA_HOME/lib
shutil.copyfile("log4j-1.2.17.jar",catalina_base+"lib/log4j.jar")
shutil.copyfile("tomcat-juli-adapters.jar",catalina_base+"lib/tomcat-juli-adapters.jar")
# replace $CATALINA_HOME/bin/tomcat-juli.jar with tomcat-juli.jar
shutil.copyfile("tomcat-juli.jar",catalina_base+"bin/tomcat-juli.jar")
# $CATALINA_BASE/conf/logging.properties
loggingpath =catalina_base+"conf/logging.properties"
if os.path.isfile(loggingpath):
os.remove(loggingpath)
print "OK"