tomcat7使用log4j做日志分割

tomcat7日志管理的部分内容来自于Apache tomcat 7.0文档中logging部分, http://tomcat.apache.org/tomcat-7.0-doc/logging.html

一、简介

1 、收集日志的作用

  监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;
  跟踪代码运行时轨迹,作为日后审计的依据;
  担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。

2 、为什么要用log4j

  在我们平时使用的tomcat7,日志输出到catalina.out。由于catalina.out日志无法自动切割,并且所有的日志都输出到catalina.out文件里。不便于我们查找。

3 、log4j 好处

  能够控制日志信息想往哪里打就往哪里打,比如:控制台、文件、邮箱、数据库等等
  能够控制日志信息想怎么打就怎么打,比如:我想要打印时间、程序的名称、程序的方法名、程序的行号、线程的名称等等
   能够控制日志信息想打什么打什么,不想打的就不打,日志信息是分级别的,有时候我只想看错误的信息或者警告的信息,有时候我想看到所有的信息我想调试程序等等

二、 使用 Log4j 来记录日志方法

  如果你只是想对当前的项目运用log4j,那么只需要将log4j.jar,log4j.properties分别放入项目的WEB-INFO/lib和WEB-INFO/classes文件夹下即可;但如果你想将log4j运用到所有运行于tomcat的项目中,那么还需要以下配置步骤:

1 、首先创建一个log4j.properties 文件,并将其放置在tomcat 的lib 目录$CATALINA_BASE/lib 下。以下配置内容为我的配置

log4j.rootLogger=INFO,stdout,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[%-d{yyyy-MM-dd HH\:mm\:ss,SSS}] [%c] [%p] [%m]%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

#c3po config

log4j.logger.com.opensymphony=warn

log4j.logger.com.mchange=warn

#spring config

log4j.logger.org.springframework=warn

#mybatis config

log4j.logger.org.apache.ibatis.logging=warn

log4j.logger.org.apache.ibatis.datasource.pooled=warn

log4j.logger.org.apache.ibatis.transaction.jdbc=warn

log4j.logger.org.mybatis.spring=warn

log4j.logger.cn.com.widgetdo.mybatis.scanner=warn

#调试时看sql语句 将 warn变为 debug就可以了

log4j.logger.cn.com.widgetdo.mapper=debug

#axis config

log4j.logger.org.apache.axis=warn

log4j.logger.org.apache.axis.utils.JavaUtils=error

#quartz config

log4j.logger.org.quartz=warn

# beanutil config

log4j.logger.org.apache.commons.beanutils=warn

#struts2 config

log4j.logger.org.apache.struts2=ERROR

log4j.logger.freemarker=warn

log4j.appender.R.File=${catalina.home}/logs/tomcat.out

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=[%d{yyyy-MM-dd HH\:mm\:ss,SSS}] [%c] [%p] [%m]%n

#log4j.logger.com.opensymphony.xwork2=ERROR

2 、下载log4j 的jar 包,需要1.2 以上版本

下载地址: http://archive.apache.org/dist/logging/log4j/1.2.17/log4j-1.2.17.jar

3 、下载tomcat-juli.jar 、tomcat-juli-adapters.jar 作为tomcat 的外部组件。注意,此处的tomcat-juli.jar 和默认的不同,它包含了Apache Commons Logging的全部实现

①下载地址:http://www.apache.org/dist/tomcat/tomcat-7/v7.0.90/bin/extras/
此处只有最新的版本v7.0.9
所以建议直接访问:http://www.apache.org/dist/tomcat/tomcat-7/
然后手动选择

或者

②下载地址:tomcat官网—>tomcat7


4、如果你想使用log4j作为tomcat的全局配置,那么首先将log4j-1.2.17.jar、tomcat-juli-adapters.jar放入$CATALINA_HOME/lib目录下
5、将$CATALINA_HOME/bin/tomcat-juli.jar替换为下载的tomcat-juli.jar,并修改成755权限
[root@cxm bin]# chmod 755 tomcat-juli.jar
6、如果有不同tomcat

  使用不同的$CATALINA_HOME和$CATALINA_BASE来运行tomcat,并且希望采用同一个$CATALINA_BASE来配置log4j,那么还需要下面几步操作:
1.创建$CATALINA_BASE/bin和$CATALINA_BASE/lib目录;
2.将log4j.jar和tomcat-juli-adapters.jar放入$CATALINA_BASE/lib下;
3.将tomcat-juli.jar放入$CATALINA_BASE/bin下;
4.如果你是以security manager运行的tomcat,那么还需要编辑$CATALINA_BASE/conf/catalina.policy文件来让它使用不同的tomcat-juli.jar.

7、删除$CATALINA_BASE/conf/logging.properties文件
8、重启tomcat

三、 使用log4j前后对比图

1、使用前

#######2、使用后(定义自己想要的格式)


你可能感兴趣的:(tomcat7使用log4j做日志分割)