1. 数据库输出(JDBCAppender)通过JDBC连接把日志输出到数据库中。配置时需要配置JDBC驱动,连接字符串,用户名,密码以及SQL语句。
需要把数据库驱动加载到classpath中。
先创建数据库,并创建日志表。
CREATE TABLE `tb_log` (
`id` int(11) NOT NULL auto_increment,
`date` varchar(255) default NULL,
`priority` varchar(255) default NULL,
`message` text,
`classname` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2。编写log4j.properties。
log4j.category.com.logging.log4j=INFO,DATABASE
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
#指定DATABASE输出模式下的级别
#log4j.appender.DATABASE.Threshold=ERROE
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=123
log4j.appender.DATABASE.sql=insert into tb_log(date,priority,message,classname) values('%d','%p','%m','%c')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=%m3.编写代码:
/ TODO Auto-generated method stub
log.trace("trace");
log.debug("debug");
log.info("info");
log.warn("warn");
log.error("error");
log.fatal("fatal");
try{
String s = null;
s.length();
}catch(Exception e){
log.trace("trace一个异常",e);
log.debug("debug一个异常",e);
log.info("info一个异常",e);
log.warn("warn一个异常",e);
log.error("error一个异常",e);
log.fatal("fatal一个异常",e);
}于是日志成功写入数据库了。