收集日志的作用
监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;
跟踪代码运行时轨迹,作为日后审计的依据;
担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。
一、使用Cronolog切割Tomcat7 日志
1.1 、cronolog下载安装
1.2、Tomcat7 配置cronolog
#touch "$CATALINA_OUT" else fi |
然后在启动Tomcat的时候,每个catalina_.out文件都会独立出来。
tomcat7日志管理的部分内容来自于Apache tomcat 7.0文档中logging部分, http://tomcat.apache.org/tomcat-7.0-doc/logging.html
一、简介
1 、为什么要用log4j
在我们平时使用的tomcat7,日志输出到catalina.out。由于catalina.out日志无法自动切割,并且所有的日志都输出到catalina.out文件里。不便于我们查找。
2 、log4j 好处
能够控制日志信息想往哪里打就往哪里打,比如:控制台、文件、邮箱、数据库等等
能够控制日志信息想怎么打就怎么打,比如:我想要打印时间、程序的名称、程序的方法名、程序的行号、线程的名称等等
能够控制日志信息想打什么打什么,不想打的就不打,日志信息是分级别的,有时候我只想看错误的信息或者警告的信息,有时候我想看到所有的信息我想调试程序等等,
一般日志的级别有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
二、 使用 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, logfile
#日志输出到控制台
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.ConversionLayout = %d [%t] %-5p %c - %m%n
#日志输出到文件
log4j.appender.logfile = org.apache.log4j.DailyRollingFileAppender
#${webapp.root}WEB-INF/logs/log4j.log 日志文件存放在tomcat编译项目web-inf/log目录下
log4j.appender.logfile.File = ${webapp.root}WEB-INF/logs/log4j.log
#日志的最大容量为10M
log4j.appender.logfile.maxFileSize=10240KB
#是否追加写进文件
log4j.appender.logfile.Append = true
#输出DEBUG级别日志到文件中
log4j.appender.logfile.Threshold = DEBUG
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %d [%t] %-5p %c - %m%n
#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的全部实现
所以建议直接访问下载地址:tomcat官网—>tomcat7:https://tomcat.apache.org/download-70.cgi
然后手动选择
①下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.96/bin/apache-tomcat-7.0.96.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.96/bin/extras/tomcat-juli.jar
此处只有最新的版本v7.0.96
②
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权限
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、使用后(定义自己想要的格式)