log4j将日志存储到数据库

log4j是javaEE日志输出文件,通常情况下我们都是把log日志输出到指定的日志文件中,在这儿我们使用log4j将日志存储到mysql,oracle数据库表中,使用log4j前必须引入log4j.jar 和commons-logging.jar这两个jar包。

一:配置log4j文件:新建log4j.properties日志文件,系统默认会到src目录下寻找该文件的,添加如下内容。

log4j.rootLogger=WARN,LOGDB2
//达到数量插入记录
log4j.appender.LOGDB2.bufferSize=10
log4j.appender.LOGDB2=org.apache.log4j.jdbc.JDBCAppender
//连接数据库的驱动-这里根据自己使用的数取库去填写
log4j.appender.LOGDB2.Driver=oracle.jdbc.driver.OracleDriver
//连接数据库的地址我这里使用的oracle的地址
log4j.appender.LOGDB2.URL=jdbc:oracle:thin:@192.168.13.41:1521:BDPC
//连接数据库的用户名
log4j.appender.LOGDB2.user=root
//密码
log4j.appender.LOGDB2.password=root
//创建记录的sql--这里需要自己手动去创建一个记录表,注意表列名一一对应,本人测试日期类型必须为varchar2,不知道是不是oracle的问题
log4j.appender.LOGDB2.sql=INSERT INTO C_TASK_LOGINFO (UUID,CDATED,CLOGGER,CLEVEL,CMESSAGE) VALUES('%x','%d{yyyy-MM-dd HH:mm:ss}','%C','%p','%m')
log4j.appender.LOGDB2.layout=org.apache.log4j.PatternLayout

**注意这里有个坑,修改log4j的配置文件时,每条信息后面的空格必须手动去掉,不然会报错。

注意:这里后面有时会有空格存在,清除空格。

image.png

二:新建数据库表,上面的log4j会自动将日志数据插入到该表中,建表语句如下,该表为oracle数据库表,mysql的话自己改下:

CREATE TABLE "CDDS"."C_TASK_LOGINFO"( 
   	"UUID" VARCHAR2(32), 
	"CDATED" VARCHAR2(32), //时间
	"CLOGGER" VARCHAR2(200),//日志记录产生的class
	"CLEVEL" VARCHAR2(50), //日志记录级别
	"CMESSAGE" CLOB     //日志记录信息
)

三:日志输出后的效果如下图所示。

log4j将日志存储到数据库_第1张图片

你可能感兴趣的:(JavaEE)