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的配置文件时,每条信息后面的空格必须手动去掉,不然会报错。
注意:这里后面有时会有空格存在,清除空格。
二:新建数据库表,上面的log4j会自动将日志数据插入到该表中,建表语句如下,该表为oracle数据库表,mysql的话自己改下:
CREATE TABLE "CDDS"."C_TASK_LOGINFO"( "UUID" VARCHAR2(32), "CDATED" VARCHAR2(32), //时间 "CLOGGER" VARCHAR2(200),//日志记录产生的class "CLEVEL" VARCHAR2(50), //日志记录级别 "CMESSAGE" CLOB //日志记录信息 )
三:日志输出后的效果如下图所示。