Log4j记录日志到数据库的一个实例

来源:互联网 发布:视图mysql 编辑:程序博客网 时间:2024/05/21 09:54

log4j的配置


#log4j.rootLogger=error,stdout,info,debug,errorlog4j.rootCategory=info,stdout,databaselog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n#下面是配置将日志信息插入数据库,#配置输出目标为数据库(假如要将日志在控制台输出,配置为log4j.appender. stdout =org.apache.log4j.ConsoleAppender;将日志写入文件,配置为log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender#这样的配置在许多地方都要有,需要可查有关资料),当然你也可以自己扩展org.apache.log4j.jdbc.JDBCAppender这个类,只需要在这里配置就可以了例如我们配置我自己扩展的MyJDBCAppender,配置为#log4j.appender.db=com.neam.commons.MyJDBCAppenderlog4j.appender.database=org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.database.layout=org.apache.log4j.PatternLayoutlog4j.appender.database.driver=com.mysql.jdbc.Driver#设置要将日志插入到数据库的驱动log4j.appender.database.Threshold=info#定义什么级别的错误将写入到数据库中log4j.appender.database.BufferSize=1#设置缓存大小,就是当有1条日志信息是才忘数据库插一次log4j.appender.database.URL=jdbc\:mysql\://120.27.128.207\:3306/test?characterEncoding\=UTF8&zeroDateTimeBehavior\=convertToNulllog4j.appender.database.user=rootlog4j.appender.database.password=zte.12345log4j.appender.database.sql=insert into WDZLOG (Class,Mothod,createTime,LogLevel,LogLine,MSG) values ('%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')


%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL  %r 输出自应用启动到输出该log信息耗费的毫秒数  %c 输出所属的类目,通常就是所在类的全名  %t 输出产生该日志事件的线程名  %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

建立数据库的SQL语句
DROP TABLE IF EXISTS `WDZLOG`;CREATE TABLE `WDZLOG` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `Class` varchar(255) DEFAULT NULL,  `Mothod` varchar(255) DEFAULT NULL,  `CreateTime` varchar(255) DEFAULT NULL,  `LogLevel` varchar(20) DEFAULT NULL,  `LogLine` varchar(255) DEFAULT NULL,  `MSG` varchar(555) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;



1 0