使用log4j切分tomcat的catalina.out输出文件

最近要做一个负载均衡服务器,后端使用tomcat作为应用服务器,主要需要解决tomcat输出日志过大的问题,想来想去,利用log4j来切分日志。主要工作有以下:

使用log4j切分日志,需要下载相应的tomcat的jar包支持,我使用的tomcat7的版本,对应jar包可以去http://download.csdn.net/detail/u011322089/9748955这里下载。总共三个jar包,log4j-1.2.17.jar,tomcat-juli.jar,tomcat-juli-adapters.jar三个jar包,将这三个jar包拷贝到tomcat目录下的lib目录中。同时需要将tomcat-juli.jar文件拷贝到tomcat 根目录下的bin目录中,bin目录已有改文件,覆盖即可。

在lib目录下新建log4j.properties配置文件,作为log4j日志输出的配置文件,我的配置文件如下,大家可以作相应修改:

log4j.rootLogger=INFO, CATALINA

# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File=/home/huazai/tomcat/logs-8801/catalina.log
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
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=/home/huazai/tomcat/logs-8801/localhost.log
log4j.appender.LOCALHOST.Append=true
log4j.appender.LOCALHOST.Encoding=UTF-8
log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd
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=/home/huazai/tomcat/logs-8801/manager.log
log4j.appender.MANAGER.Append=true
log4j.appender.MANAGER.Encoding=UTF-8
log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd
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=/home/huazai/tomcat/logs-8801/host-manager.log
log4j.appender.HOST-MANAGER.Append=true
log4j.appender.HOST-MANAGER.Encoding=UTF-8
log4j.appender.HOST-MANAGER.DatePattern='.'yyyy-MM-dd
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
# 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
保存log4j.properties文件之后,再tomcat根目录下,conf文件夹下,删除logging.properties文件,不过我建议重命名该文件。

其次修改context.xml文件,在<Context> 标签修改为<Context  swallowOutput="true">,以接管tomcat的日志输出。

一般情况下,我们如果希望更改tomcat的日志输出文件目录,第一步当前是修改log4j.properties文件中的日志输出目录,其次,在conf文件夹下修改server.xml文件,在<Valve>标签里面修改内容,directory属性下修改为你希望输出的文件目录,是文件目录,不是文件。

最后一个文件修改在tomcat根目录bin文件夹下,修改catalina.sh文件,

如上图所示部分修改成需要输出的根目录就行。

至此,tomcat日志切分及日志文件根目录修改已经完成。
折腾了一个上午,终于也算是把这个问题解决了,写个博客,记录一下,以备以后使用,希望可以对大家都有所帮助。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值