利用log4j将记录日志保存到Mysql数据库方法及问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QQ727338622/article/details/84074768

1.首先是要在数据库中建一张表

CREATE TABLE `log` (
  `log_id` int(11) NOT NULL AUTO_INCREMENT,
  `project_name` varchar(255) DEFAULT NULL COMMENT '目项名',
  `create_date` varchar(255) DEFAULT NULL COMMENT '创建时间',
  `level` varchar(255) DEFAULT NULL COMMENT '优先级',
  `category` varchar(255) DEFAULT NULL COMMENT '所在类的全名',
  `file_name` varchar(255) DEFAULT NULL COMMENT '输出日志消息产生时所在的文件名称 ',
  `thread_name` varchar(255) DEFAULT NULL COMMENT '日志事件的线程名',
  `line` varchar(255) DEFAULT NULL COMMENT '号行',
  `all_category` varchar(255) DEFAULT NULL COMMENT '日志事件的发生位置',
  `message` varchar(4000) DEFAULT NULL COMMENT '输出代码中指定的消息',
  PRIMARY KEY (`log_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.设置好后,配置log4j的配置文件,我这里用的是properties文件,输出的信息有点多,我也是拿人家的输出语言(记得改数据库配置)

#mysql
log4j.appender.logDB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logDB.layout=org.apache.log4j.PatternLayout
log4j.appender.logDB.Driver=com.mysql.jdbc.Driver
log4j.appender.logDB.URL=jdbc:mysql://localhost:3306/log4j
log4j.appender.logDB.User=root
log4j.appender.logDB.Password=root
log4j.appender.logDB.Sql=INSERT INTO log(project_name,create_date,level,category,file_name,thread_name,line,all_category,message) values('\u6D4B\u8BD5','%d{yyyy-MM-ddHH:mm:ss}','%p','%c','%F','%t','%L','%l','%m')

log4j.rootLogger=info,logDB

3.配置完成之后,就可以将数据存到数据库,但是有时总是遇见一些奇怪的问题,例如这样:系统提示数据库驱动找不到,其实并不是这样,我的驱动确实是存在的。
在这里插入图片描述

解决方法:

(如果没有遇见就算了)将properties配置文件里面的每一句话的后面的空格去掉,就OJBK了,记住是行结束的位置的空格
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/QQ727338622/article/details/84074768
今日推荐