最近发现服务器上tomcat的日志不断增大,占用过多磁盘空间,所以寻找解决办法,从网上找了一下发现可以使用log4j控制其日志。
现整理如下备忘
Tomcat默认使用common-logging来输出日志,info信息都打印到catalina.out中日积月累,可能会占用很大空间,为防止占用过多的磁盘空间,需要将tomcat的日志进行控制。
使用log4j作为tomcat的日志组件,控制其文件大小和备份文件个数可以达到控制日志文件大小的作用。
1、使用log4j替换tomcat默认的common-logging。
下载tomcat-juli-adapters.jar、tomcat-juli.jar 、log4j.jar,新建log4j.properties文件放到tomcat如下目录:
tomcat6-------lib
| |--------tomcat-juli-adapters.jar
| |--------log4j.jar
| |--------log4j.properites
|
|----bin
|--------tomcat-juli.jar
以tomcat6.0.26为例
从如下地址下载tomcat-juli-adapters.jar、tomcat-juli.jar
http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/
log4j我用的是1.2.16
http://logging.apache.org/log4j/1.2/download.html
log4j.properties配置只向文件打印info信息
# 设定logger的root level为DEBUG,指定的输出目的地(appender)为file
log4j.rootLogger=INFO, file
# 设定输出位置,此处设定tomcat目录的logs下,文件名为server.log
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/server.log
#控制日志文件最大10MB
log4j.appender.file.MaxFileSize=10MB
#控制日志文件最多备份5个
log4j.appender.file.MaxBackupIndex=5
# 设定制定的file使用的PatternLayout.
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%n
经过上述修改后在windows中 从tomcat_base/bin/startup.bat启动tomcat可以看到logs中有一个server.log文件,它记录了tomcat的启动日志。其他日志文件大小都是0,已经不占用空间。
但是在ubuntu上启动tomcat 之后,logs文件夹中还有catalina.out日志并不断增大。
2、修改tomcat配置文件
打开catalina.sh 搜索 >> "$CATALINA_OUT" 有两处,将 "$CATALINA_OUT" 替换为 /dev/null
经过上述修改之后 tomcat的日志只向log4j.properties中指定的路径输出,原来默认的日志文件不再增长。