一直感受到log4j是使用比較混亂,今天抽空整理一下,之後方便使用java
1、引用apache.log4j
使用maven進行lo4j的引用mysql
<!-- Apache Log4j 1.2.17 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
其餘版本也能夠再資源庫搜索添加
http://mvnrepository.com/arti...spring
2、再spring的bean中或者java類中加入log4jsql
/** * lo4j引用demo */ @Controller @RequestMapping("demoWeb") public class DemoWebController { //使用方法1 -- 用this直接表明本類 private final Logger logger = Logger.getLogger(this.getClass()); //使用方法2 -- 使用用本類引用 private final Logger logger = Logger.getLogger(DemoWebController.getClass()); }
3、配置log4j配置文件(引用的lo4j百度百科)
一、在配置resources或自定義路徑下配置log4j.properties(命名自定義,只要spring能檢索到就能夠)
二、說明:
① 配置根Logger數據庫
Logger 負責處理日誌記錄的大部分操做。 其語法爲: log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中,level 是日誌記錄的優先級,分爲OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定義的級別。 Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。 經過在這裏定義的級別,您能夠控制到應用程序中相應級別的日誌信息的開關。好比在這裏定義了INFO級別,只有等於及高於這個級別的才進行處理,則應用程序中全部DEBUG級別的日誌信息將不被打印出來。 ALL:打印全部的日誌,OFF:關閉全部的日誌輸出。 appenderName就是指定日誌信息輸出到哪一個地方。可同時指定多個輸出目的地。 示例: log4j.rootLogger=info, stdout
② 配置日誌信息輸 Appenderapache
##這裏填寫你輸出的方式 og4j.appender.appenderName = {appender}
Log4j提供的appender有如下幾種:app
示例:maven
##這裏表示控制檯的信息記錄 og4j.appender.appenderName = org.apache.log4j.ConsoleAppender ## 下面是appender的基本options ##系統輸出方式 log4j.appender.appenderName.Target = System.out ##生成文件路勁 log4j.appender.appenderName.File = E:\\file\\log\\qc.log ##追加方式 true爲在信息後面追加 false爲覆蓋信息後輸出 log4j.appender.appenderName.Append = true ##指定輸出等級 log4j.appender.appenderName.Threshold = INFO ##佈局輸出 log4j.appender.appenderName.layout = org.apache.log4j.PatternLayout
③置日誌信息的格式(佈局)佈局
##這裏填寫你輸出的方式 og4j.appender.appenderName.layout = {style}
Log4j提供的style有如下幾種:this
若是使用pattern佈局就要指定的打印信息的具體格式ConversionPattern,打印參數以下:
##這裏進行輸出格式配置 log4j.appender.appenderName.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n
輸出的信息
[demo] DEBUG [main] DemoBeanFactory.getDemo(189) | this is output log
以上就完成了基本的log4j的配置和使用
下面進行通常示例配置:
### 設置日誌等級 ### log4j.rootLogger=DEBUG,CONSOLE,DATABASE,DAIY_LOG,DAIY_INFO_LOG,DAIY_ERROR_LOG ### CONSOLE 控制檯輸出 ### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[spring-demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n ### 將錯誤日誌存到DATABASE中 ### log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender ##數據庫地址 log4j.appender.DATABASE.URL=jdbc:mysql://127.0.0.1:3306/demo ##數據庫橋 log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver ##mysql用戶名 log4j.appender.DATABASE.user=root ##mysql密碼 log4j.appender.DATABASE.password=root ##講console中的警告日誌書寫的到數據庫中 log4j.appender.CONSOLE.Threshold=WARN # INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n') log4j.appender.DATABASE.sql=INSERT INTO LOG4J(stamp,thread, infolevel,class,messages) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m') log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout log4j.appender.DATABASE.layout.ConversionPattern=[spring-demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n ### DAIYLOG 每日信息 ### log4j.appender.DAIY_LOG=org.apache.log4j.DailyRollingFileAppender log4j.appender.DAIY_LOG.File=E:\\file\\log\\demo_all_log.log log4j.appender.DAIY_LOG.Append=true log4j.appender.DAIY_LOG.Threshold=ALL log4j.appender.DAIY_LOG.layout=org.apache.log4j.PatternLayout log4j.appender.DAIY_LOG.layout.ConversionPattern=[spring-demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n ### DAIYLOG 每日INFO信息 ### log4j.appender.DAIY_INFO_LOG=org.apache.log4j.DailyRollingFileAppender log4j.appender.DAIY_INFO_LOG.File=E:\\file\\log\\demo_info_log.log log4j.appender.DAIY_INFO_LOG.Append=true log4j.appender.DAIY_INFO_LOG.Threshold=INFO log4j.appender.DAIY_INFO_LOG.layout=org.apache.log4j.PatternLayout log4j.appender.DAIY_INFO_LOG.layout.ConversionPattern=[spring-demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n ### DAIYLOG 每日ERROR信息 ### log4j.appender.DAIY_ERROR_LOG=org.apache.log4j.DailyRollingFileAppender log4j.appender.DAIY_ERROR_LOG.File=E:\\file\\log\\demo_error_log.log log4j.appender.DAIY_ERROR_LOG.Append=true log4j.appender.DAIY_ERROR_LOG.Threshold=ERROR log4j.appender.DAIY_ERROR_LOG.layout=org.apache.log4j.PatternLayout log4j.appender.DAIY_ERROR_LOG.layout.ConversionPattern=[spring-demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n
自定義等後續進行補充和完善