天天看點

log4j和log4jdbc的使用

log4j

借鑒:http://www.blogjava.net/zJun/archive/2006/06/28/55511.html

Log4j可以控制日志資訊輸送的目的地是控制台、檔案、GUI元件,甚至是套接口伺服器、NT的事件記錄器等;也可以控制每一條日志的輸出格式;

通過定義日志資訊的級别,可以更加細緻地控制日志的生成記錄。

log4j配置檔案的大概格式如下:

#配置根Logger
log4j.rootLogger = [level], appender1, appender2,…

#配置日志資訊輸出目的地Appender1
log4j.appender.appenderName1  =  org.apache.log4j.[AppenderType]
log4j.appender.appenderName1.layout  =  org.apache.log4j.[LayoutType]
log4j.appender.appenderName1.layout.ConversionPattern  =  [pattern]
log4j.appender.appenderName1.option1  =  value1 
… 
log4j.appender.appenderName1.optionN  =  valueN 

#配置日志資訊輸出目的地Appender2
log4j.appender.appenderName2  =  org.apache.log4j.[AppenderType]
log4j.appender.appenderName2.layout  =  org.apache.log4j.[LayoutType]
log4j.appender.appenderName2.layout.ConversionPattern  =  [pattern]
log4j.appender.appenderName2.option1  =  value1 
… 
log4j.appender.appenderName2.optionN  =  valueN 

… 
           

[level]

是日志的輸出級别。共包含5個等級。會列印出等于或高于設定等級的日志資訊。

可直接配置跟logeer的日志等級,也可為每個Appender設定不同的日志等級,将不同等級的日志區分開。

FATAL      0  
ERROR      3  
WARN       4  
INFO       6  
DEBUG      7
           

[AppenderType]

指定了日志的輸出目的地。

log4j提供的appender有以下幾種:

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(檔案),
org.apache.log4j.DailyRollingFileAppender(每天産生一個日志檔案),
org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候産生一個新的檔案),
org.apache.log4j.WriterAppender(将日志資訊以流格式發送到任意指定的地方)
           

[LayoutType]

指定日志的輸出形式。有以下幾種:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志資訊的級别和資訊字元串),
org.apache.log4j.TTCCLayout(包含日志産生的時間、線程、類别等等資訊)
           

常用的配置例子:

### set log levels ###
log4j.rootLogger = DEBUG,console,D,E

### 輸出到控制台 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =  %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 輸出到日志檔案 ###
log4j.appender.D = org.apache.log4j.RollingFileAppender    ##檔案大小到達指定尺寸的時候産生一個新的檔案
log4j.appender.D.File = ${catalina.home}/mylogs/log.log    ##檔案的輸出路徑
log4j.appender.D.MaxFileSize = 10MB                        ##檔案的最大尺寸
log4j.appender.D.Threshold = DEBUG                         ##此appender的日志級别
log4j.appender.D.layout = org.apache.log4j.PatternLayout   ##表達式指定布局
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 儲存異常資訊到單獨檔案 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender    ##每日生成一個檔案
log4j.appender.E.File = ${catalina.home}/mylogs/error.log       ##檔案輸出路徑
log4j.appender.E.Threshold = ERROR                              ##此appender的級别
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
           

java代碼中的使用示例:

public class LoggerTest {
    private Logger log = Logger.getLogger(LoggerTest.class);
	
    public static void main(String[] args) {
        log.debug("調試使用");
	log.info("info及以上級别可見");
	log.warn("warn及以上級别可見");
	try{
	    //TODO
	} catch(Exception e){
	    log.error("異常時輸出此資訊", e);
	}
    }
}
           

log4jdbc

借鑒:http://www.cnblogs.com/xdp-gacl/p/4081848.html

          http://www.cnblogs.com/JSONBEAN/p/6363237.html

1、簡介:

log4jdbc是工作在jdbc層的一個日志架構,能夠在不改變原有代碼的情況下,記錄SQL及資料庫連接配接執行資訊。

相對于mybatis,hibernate,spring jdbc等架構将參數值用占位符辨別,參數值與sql代碼分離的缺點。log4jdbc可以完整的列印出可執行的完整sql。

2、依賴

使用log4jdbc需要引入log4jdbc-1.2.jar,以及依賴的相關Jar包log4j-1.2.17.jar、slf4j-api-1.6.0.jar、slf4j-log4j12-1.7.7.jar。

3、配置

在log4jdbc中定義了以下五個日志對象:

jdbc.sqlonly     : 記錄系統執行過的sql語句
jdbc.sqltiming   : 記錄sql執行的時間,可以分析耗時的sql語句
jdbc.audit       : 記錄除了ResultSet外的所有JDBC調用情況。一般不需要。
jdbc.resultset   : 記錄傳回結果集資訊。資料太多,一般也不用。可将執行的sql複制到plsql執行。
jdbc.connection  : 記錄資料庫連接配接和釋放資訊,可記錄目前的資料庫連接配接數,便于診斷連接配接是否釋放。
           

如上面log4j部分的“常用的配置例子”,可在log4j.rootLogger下加入如下配置:

#jdbc執行日志配置
log4j.logger.jdbc.sqlonly=INFO
log4j.logger.jdbc.sqltiming=INFO
log4j.logger.jdbc.resultset=OFF     ##關閉不列印
log4j.logger.jdbc.audit=OFF         ##關閉不列印
log4j.logger.jdbc.connection=ERROR  ##隻列印連接配接異常資訊
           

4、修改jdbc配置

修改驅動和url,如下所示:

jdbc.driverClassName=net.sf.log4jdbc.DriverSpy
jdbc.url=jdbc:log4jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=scort
jdbc.password=tiger      

繼續閱讀