Tomcat7 日誌配切割置

   收集日誌的作用

  監視代碼中變量的變化情況,週期性的記錄到文件中供其他應用進行統計分析工作;
  跟蹤代碼運行時軌跡,作爲日後審計的依據;
  擔當集成開發環境中的調試器的作用,向文件或控制檯打印代碼的調試信息。

 

一、使用Cronolog切割Tomcat7 日誌

 
Tomcat日誌文件輸出路徑配置在catalina.sh文件中,變量名CATALINA_OUT
 

1.1 、cronolog下載安裝

 
看Tomcat下面有很多catalina.日期的文件.log,原本以爲每天的日誌內容自動切割成每天獨立的文件,但是打開查看,裏面沒有記錄什麼日誌信息。catalina.日期.log  這個主要是記錄tomcat啓動時候的信息,類似於我們啓動服務的時候在控制檯看到的信息。在裏面可以看到啓動的JVM參數以及操作系統等日誌信息。如果沒有使用log4j等日誌機制,系統的的錯誤信息與打印語句也在這個日誌文件中記錄。(linux下所有的日誌都在catalina.out中)
 
linux下Tomcat所有的日誌都在catalina.out中,那如果訪問量大沒有幾天日誌文件就12G了,文件太大導致文件無法打開,日誌無法查看,日誌文件就沒有作用。
 
百度了一下有兩種方案,一種是日誌切割用的是cronlog,按天輸出,一種是將Tomcat日誌改爲Log4J,控制日誌輸出內容。
 
 
日誌切割用的工具官方網站:
點擊:Cento7,在點擊“cronlog-1.6.2-14.el7.x86.64.rpm"
 
 
進入子頁面,拉到頁面底部,點擊"Binary Package",下載”cronolog-1.6.2-14.el7.x86_64.rpm",右鍵選擇“複製下載地址”
 
然後進入Centos7,用root權限下載rpm包
 
運行安裝 : rpm -ivh cronolog-1.6.2-14.el7.x86_64.rpm
 
查看安裝位置 whereis cronolog
 
注意:這邊安裝完的位置是在/usr/sbin/目錄下面

1.2、Tomcat7 配置cronolog

從Tomcat位置下面的bin/catalina.sh的421行開始修改(每個TOMCAT版本位置會不一樣)
 
 
 
 
具體的代碼

#touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -classpath "\"$CLASSPATH\"" \
      -Djava.security.manager \
      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start  2>&1\
      | /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

  else
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -classpath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start 2>&1\
      | /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

  fi

然後在啓動Tomcat的時候,每個catalina_.out文件都會獨立出來。

 
----------------------------------------------------------------------------------------------------------------------------------
 
二、使用Log4J切割Tomcat 7日誌
 
 

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-adapters.jar

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、使用後(定義自己想要的格式)

 

 


 

 
 
 
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章