今天遇到一個spring管理hibernate的日誌輸出改造,以前是一堆日誌打印到catalina.out,無法按日期生成新文件,無法分割root日誌,項目日誌,sql日誌,現將其規則化,記錄下工作日記
ALL 最低等級的,用於打開所有日誌記錄。
TRACE designates finer-grained informational events than the DEBUG.Since:1.2.12,很低的日誌級別,一般不會使用。
DEBUG 指出細粒度信息事件對調試應用程序是非常有幫助的,主要用於開發過程中打印一些運行信息。
INFO 消息在粗粒度級別上突出強調應用程序的運行過程。打印一些你感興趣的或者重要的信息,這個可以用於生產環境中輸出程序運行的一些重要信息,但是不能濫用,避免打印過多的日誌。
WARN 表明會出現潛在錯誤的情形,有些信息不是錯誤信息,但是也要給程序員的一些提示。
ERROR 指出雖然發生錯誤事件,但仍然不影響系統的繼續運行。打印錯誤和異常信息,如果不想輸出太多的日誌,可以使用這個級別。
FATAL 指出每個嚴重的錯誤事件將會導致應用程序的退出。這個級別比較高了。重大錯誤,這種級別你可以直接停止程序了。
OFF 最高等級的,用於關閉所有日誌記錄
說明
Root級別日誌
log4j.rootLogger=DEBUG, B2
應用級別日誌
log4j.logger.com.uccfocus=DEBUG, C3
log4j.additivity.com.uccfocus=false
sql級別日誌
log4j.logger.org.hibernate.SQL=DEBUG, D4
log4j.additivity.org.hibernate.SQL=false
#控制檯
log4j.appender.A1.Target=System.out
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} %5p %c{1}\:%L - %m%n
log4j.appender.A1=org.apache.log4j.ConsoleAppender
appender例子:
log4j.appender.C3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.C3.Threshold=DEBUG
log4j.appender.C3.ImmediateFlush=true
log4j.appender.C3.Append=true
log4j.appender.C3.File=./../logs/xxx.log
log4j.appender.C3.MaxFileSize=102400KB
log4j.appender.C3.MaxBackupIndex=50
log4j.appender.C3.layout=org.apache.log4j.PatternLayout
#log4j.appender.C3.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} %5p %c{1}\:%L - %m%n
log4j.appender.C3.layout.ConversionPattern=[%d{ISO8601}]|%X{serial_no}|%X{SERVER_NAME}|%-5p|%t|%C|%M|%m%n
再改造過程中,遇到問題
添加應用級別appender日誌後,指定文件xxx.log,無日誌打印,
The reason:
log4j.logger 級別配置設置log4j.logger.com.uccfocus=DEBUG
appender 級別配置的是log4j.appender.C3.Threshold =INFO。
日誌級別DUBUG > INFO,所以appender閾值攔截INFO以下級別日誌不打印到指定文件xxx.log裏面