靈活控制hibernate的日誌輸出及sql打印到指定文件

今天遇到一個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裏面

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