收集日誌的作用
監視代碼中變量的變化情況,週期性的記錄到文件中供其他應用進行統計分析工作;
跟蹤代碼運行時軌跡,作爲日後審計的依據;
擔當集成開發環境中的調試器的作用,向文件或控制檯打印代碼的調試信息。
一、使用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、使用後(定義自己想要的格式)