首页 > 学院 > 操作系统 > 正文

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

2024-06-28 16:00:33
字体:
来源:转载
供稿:网友

最近要做一个负载均衡服务器,后端使用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 appenderslog4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.CATALINA.File=/home/huazai/tomcat/logs-8801/catalina.loglog4j.appender.CATALINA.Append=truelog4j.appender.CATALINA.Encoding=UTF-8# Roll-over the log once per daylog4j.appender.CATALINA.DatePattern='.'yyyy-MM-ddlog4j.appender.CATALINA.layout = org.apache.log4j.PatternLayoutlog4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.LOCALHOST.File=/home/huazai/tomcat/logs-8801/localhost.loglog4j.appender.LOCALHOST.Append=truelog4j.appender.LOCALHOST.Encoding=UTF-8log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-ddlog4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayoutlog4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.MANAGER=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.MANAGER.File=/home/huazai/tomcat/logs-8801/manager.loglog4j.appender.MANAGER.Append=truelog4j.appender.MANAGER.Encoding=UTF-8log4j.appender.MANAGER.DatePattern='.'yyyy-MM-ddlog4j.appender.MANAGER.layout = org.apache.log4j.PatternLayoutlog4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.HOST-MANAGER=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.HOST-MANAGER.File=/home/huazai/tomcat/logs-8801/host-manager.loglog4j.appender.HOST-MANAGER.Append=truelog4j.appender.HOST-MANAGER.Encoding=UTF-8log4j.appender.HOST-MANAGER.DatePattern='.'yyyy-MM-ddlog4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayoutlog4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.Encoding=UTF-8log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n# Configure which loggers log to which appenders# Configure which loggers log to which appenderslog4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOSTlog4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=/  INFO, MANAGERlog4j.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日志切分及日志文件根目录修改已经完成。折腾了一个上午,终于也算是把这个问题解决了,写个博客,记录一下,以备以后使用,希望可以对大家都有所帮助。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表