log4j日志存储到数据库
来源:互联网 发布:汪峰 知乎 编辑:程序博客网 时间:2024/05/17 22:42
一、前提条件
系统必须是使用LOG4J进行日志管理,否则方法无效。
系统必须包含commons-logging-xxx.jar,log4j-xxx.jar这两个JAR包,XXX为版本号。
二、操作步骤
1、创建日志表
要把日志持久化,必须在数据库中创建一张用来存储日志信息的表,表内字段为日志
的一个主要属性包括:操作类,执行方法,打印时间,日志级别,日志内容。
CREATE TABLE RESLOG (LOGID VARCHAR2(20) NOT NULL,
CLASS VARCHAR2(200),
METHOD VARCHAR2(100),
CREATETIME DATE,
LOGLEVEL VARCHAR2(50),
MSG VARCHAR2(4000))
因为存储的类为类的全部路径,所以CLASS字段长度需要比较大。
2、日志管理配置
LOG4J主要有两种配置文件.properties和.xml,这里以properties文件为基础来讲
述,关于XML文件的配置,相信大家看完下面的介绍也一样能轻松完成。
通常在LOG4J.PROPERTIES文件的第一行是:
log4j.rootLogger= XXX,这句是控制日志的输出,如果想吧日志输出到数据库,
则需要在XXX中添加“DB”,如log4j.rootLogger=INFO,stdout,Platform,db。上面
这句就是把日志中级别为INFO的信息输出到STDOUT,PLATFORM和DB
(DATABASE)中。
配置好如上的信息,LOG4J就知道用户是想把信息存入数据库,接下来我们就要来
配置数据库的相关信息(包括缓存,数据库连接信息,和执行SQL),配置信息如下:
###JDBCAppender
log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender
//这个配置是选择使用JDBCAppender方法,将日志信息存储到数据库。当然,如果你还要做其他操作,可以自己写个类, 继承JDBCAppender就OK了。
log4j.appender.db.BufferSize=1
//这个配置是告诉LOG4J,有多少条日志信息后才存入数据库,我这里是1,就是说有一条就查一条,显然这样在生产环境下 是很影响系统性能的。
log4j.appender.db.driver=Oracle.jdbc.driver.OracleDriver
//这个配置是告诉LOG4J,做数据库存储所用的驱动。
log4j.appender.db.URL=jdbc:oracle:thin:@<ip>:<port>:<sid>
//这个配置数据库连接的URL,不用说也都知道。
log4j.appender.db.user=XXX
log4j.appender.db.password=XXX
//上面两个是数据库连接时的用户名和密码
log4j.appender.db.sql=insert into RESLOG
(LogId,Class,Method,createTime,LogLevel,MSG)
values (SQ_RESLOG_LOGID.Nextval,'%C','%M',
to_date('%d{yyyy-MM-dd HH:mm:ss}','yyyy-MM-dd
HH24:mi:ss'),'%p','%m')
//这个配置是告诉当LOG4J吧日志存储数据库时用的SQL语句。SQ_RESLOG_LOGID.Nextval是我建的一SEQUENCE;‘%C’是日志中的CLASS;‘%M’是打印日志是执行到类里的方法;‘%d’是打印的时间,它支持格式化;‘%P’是日志级别,包括INFO、DEBUG、ERROR等;‘%m’是MSG,日志内容。注意这里的参数区分大小写。
log4j.appender.db.layout=org.apache.log4j.PatternLayout
通过上面的配置,现在再启动服务,LOG4J就会自动把原来存储在.LOG文件中的信息,同时存储到数据库了。
当然,LOG4J还支持自定义参数,如打印日志时当前的用户信息等,这个以后以机会再说。
如果系统中的部分组件打印信息中包含"'"(单引号),系统会报“缺失逗号”的错误,搞了半天也解决不了,还好打印的都是INFO,把打印级别设为“WARN”就OK了
原文出处:http://blog.csdn.NET/zhangchu_63/article/details/5542100- log4j日志存储到数据库
- log4j日志存储到数据库
- log4j日志存储到数据库
- log4j日志存储到数据库
- log4j将日志存储到数据库
- Log4j日志存储到数据库——优化
- log4j 日志保存到数据库
- log4j 日志输出到数据库
- log4j日志记录到数据库
- log4j自定义日志等级;数据库缓冲池存储到数据库;数据库和输出到文件终端分离;发送邮件
- 配置 log4j 将日志写到数据库
- 用Log4j 将日志保存到数据库
- log4j记录日志到数据库中
- Log4j学习。输出日志到数据库。
- Log4J写系统日志到数据库
- 把log4j日志信息输出到数据库
- log4j 将日志保存到数据库
- 使用log4j 记录日志到数据库
- Linux系统中段错误的原因
- ajax+ashx返回值详解
- 第二场个人训练赛(水题合集)
- 机器学习_2之目标跟踪Camshift算法
- 【Hash】bzoj4337 BJOI2015树的同构
- log4j日志存储到数据库
- 好久好久与
- html5学习2017.07.07
- 树中相关计算
- 翻车笔记:openjudge8469:特殊密码锁
- 揭秘 DeepMind 的关系推理网络
- git config git ssh git https
- android 读取U盘apk文件信息,拔掉U盘导致进程被杀
- 更改目录及子文件所有者及所属组