log4j能夠支持將log輸出到文件,數據庫,甚至遠程服務器,本教程以mysql數據庫爲例來說解:java
做者:Jesaimysql
沒有傘的孩子,只能光腳奔跑!sql
數據庫表數據庫
表4-1日誌表(log)apache
字段名服務器 |
字段解釋app |
數據類型數據庫設計 |
數據測試 長度ui |
是否爲空 |
是否爲主鍵 |
是否爲外鍵 |
id |
日誌編號 |
bigint |
20 |
否 |
是 |
否 |
create_time |
建立時間 |
datetime |
|
否 |
否 |
否 |
logs |
日誌內容 |
varchar |
200 |
否 |
否 |
否 |
數據庫建立:
Create database log;
切換數據庫:
Use log;
建立表:
CREATE TABLE `log` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL, `logs` varchar(200) NOT NULL, primary key(`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
新建一個java項目 log4j_write_mysql:
File->new ->java Project:
新建一個測試類Test:
新建一個lib文件,導入log4j的包:
配置log4j配置文件
log4j.rootLogger=ERROR,appender1,appender2 log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender1.layout=org.apache.log4j.PatternLayout log4j.appender.appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n log4j.appender.appender2=org.apache.log4j.jdbc.JDBCAppender log4j.appender.appender2.driver=com.mysql.jdbc.Driver log4j.appender.appender2.URL=jdbc:mysql://localhost:3306/log?useUnicode=true&characterEncoding=UTF-8 log4j.appender.appender2.user=root log4j.appender.appender2.password=137151 log4j.appender.appender2.sql=insert into zuidaima_log (create_time,log) VALUES ('%d{yyyy-MM-dd hh:mm:ss}', '%c %p %m %n') log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
測試類編碼:
/** * */ package log4j_write_mysql; import org.apache.log4j.Logger; /** * * 項目名稱:log4j_write_mysql * 類名稱:Test * 類描述: * 建立人:鄧家海 * 建立時間:2015年5月28日 上午1:03:01 * 修改人:deng * 修改時間:2015年5月28日 上午1:03:01 * 修改備註: * @version * */ public class Test { public static Logger log = Logger.getLogger(Test.class); public static void main(String[] args) { try { throw new Exception("最代碼錯誤log"); } catch (Exception e) { log.error(e.getMessage()); } } }
控制檯信息:
數據庫信息:
改進,整合控制檯、日誌文件、數據庫三個輸出:
配置文件代碼:
log4j.rootLogger=ERROR,appender1,appender2,log2 log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender1.Target=System.err log4j.appender.appender1.layout=org.apache.log4j.PatternLayout log4j.appender.appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n log4j.appender.appender2=org.apache.log4j.jdbc.JDBCAppender log4j.appender.appender2.driver=com.mysql.jdbc.Driver log4j.appender.appender2.URL=jdbc:mysql://localhost:3306/log?useUnicode=true&characterEncoding=UTF-8 log4j.appender.appender2.user=root log4j.appender.appender2.password=137151 log4j.appender.appender2.sql=insert into log (create_time,logs) VALUES ('%d{yyyy-MM-dd hh:mm:ss}', '%c %p %m %n') log4j.appender.appender2.layout=org.apache.log4j.PatternLayout log4j.appender.log2=org.apache.log4j.FileAppender log4j.appender.log2.file=log.log log4j.appender.log2.layout=org.apache.log4j.PatternLayout log4j.appender.log2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
如須要源代碼,請發帖索要:
http://tieba.baidu.com/f?kw=%C8%ED%BC%FE%C6%B5%B5%C0&fr=home