log4j日志存储到数据库
一、前提条件
系统必须是使用LOG4J进行日志管理,否则方法无效。
系统必须包含commons-logging-xxx.jar,log4j-xxx.jar这两个JAR包,XXX为版本号。
二、操作步骤
1、创建日志表
要把日志持久化,必须在数据库中创建一张用来存储日志信息的表,表内字段为日志
的一个主要属性包括:操作类,执行方法,打印时间,日志级别,日志内容。
CREATE TABLE `reslog` (
`LOGID` int(20) NOT NULL AUTO_INCREMENT,
`CLASS` varchar(200) DEFAULT NULL,
`METHOD` varchar(100) DEFAULT NULL,
`CREATETIME` date DEFAULT NULL,
`LOGLEVEL` varchar(50) DEFAULT NULL,
`MSG` varchar(4000) DEFAULT NULL,
PRIMARY KEY (`LOGID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
因为存储的类为类的全部路径,所以CLASS字段长度需要比较大。
2、日志管理配置
LOG4J主要有两种配置文件.properties和.xml,这里以properties文件为基础来讲
述,关于XML文件的配置,相信大家看完下面的介绍也一样能轻松完成。
通常在LOG4J.PROPERTIES文件的第一行是:
log4j.rootLogger= XXX,这句是控制日志的输出,如果想吧日志输出到数据库,
则需要在XXX中添加“database”,如log4j.rootLogger=INFO,stdout,database。上面
这句就是把日志中级别为INFO的信息输出到STDOUT和database中。
配置好如上的信息,LOG4J就知道用户是想把信息存入数据库,接下来我们就要来
配置数据库的相关信息(包括缓存,数据库连接信息,和执行SQL),配置信息如下:
log4j.appender.database=org.apache.log4j.ConsoleAppender
log4j.appender.database.layout=org.apache.log4j.PatternLayout
log4j.appender.database.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.database.driver=com.mysql.jdbc.Driver
log4j.appender.database.URL=jdbc:mysql://127.0.0.1:3306/tax_sjz?useUnicode=true&characterEncoding=UTF-8
log4j.appender.database.user=root
log4j.appender.database.password=123456
log4j.appender.database.sql=insert into reslog (class,method,createtime,loglevel,msg) VALUES ('%C','%M','%d{yyyy-MM-dd hh:mm:ss}','%p','%m')
log4j.appender.database.layout=org.apache.log4j.PatternLayout
log4j的配置中不允许有空格出现,
如果系统中的部分组件打印信息中包含"'"(单引号),系统会报“确实逗号”的错误,搞了半天也解决不了,还好打印的都是INFO,把打印级别设为“WARN”就OK了
log4j日志存储到数据库的更多相关文章
- 项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库
作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 365234583] ...
- log4j日志记录到数据库
log4j API提供 org.apache.log4j.jdbc.JDBCAppender 对象,它能够将日志信息在指定的数据库. JDBCAppender 配置: Property 描述 buff ...
- 用Hbase存储Log4j日志数据:HbaseAppender
业务需求: 需求很简单,就是把多个系统的日志数据统一存储到Hbase数据库中,方便统一查看和监控. 解决思路: 写针对Hbase存储的Log4j Appender,有一个简单的日志储存策略,把Log4 ...
- Log4j(一):Log4j将日志信息写入数据库
前言 为了监听一些数据的采集等功能,需要随时监听设备的状态,所以需要运行的时候将日志打入到数据库中. 正文 第一步: 首先是jar包,由于我使用的是springboot,所以,在springboot- ...
- log4j日志写入数据库
# log4j写入数据库 ### 前言-----------------------------log4j是写入日志到控制台和文件很常见,但是写入到数据库不多见.做性能测试写入到数据库,统计方便些. ...
- log4j教程 12、日志记录到数据库
log4j API提供 org.apache.log4j.jdbc.JDBCAppender 对象,它能够将日志信息在指定的数据库. JDBCAppender 配置: Property 描述 buff ...
- SQL Server数据库事务日志存储序列
原文 原文:http://blog.csdn.net/tjvictor/article/details/5251351 如果你的数据库运行在完整或是批量日志恢复模式下,那么你就需要使用作业(job ...
- log4j配置输出到数据库+自定义字段
Log4j.properties配置 log4j.rootLogger = info,stdout,D,E,A3 log4j.appender.Threshold=info ### 控制台输出### ...
- [Java开发之路](16)学习log4j日志
1. 新建一个Javaproject.导入Jar包(log4j-1.2.17.jar) Jar包下载地址:点击打开链接 2. 配置文件:创建并设置log4j.properties # 设置 log4j ...
随机推荐
- CTF-Mayday
打开下载的Mayday.txt文件: 温柔 知足突然好想你 拥抱突然好想你 拥抱温柔 知足温柔 知足突然好想你 拥抱突然好想你 拥抱温柔 知足温柔 知足突然好想你 拥抱突然好想你 拥抱温柔 ...
- LeetCode Weekly Contest 26
写的有点晚了. 我每次都是先看一下这里http://bookshadow.com/leetcode/的思路,然后再开始写我自己的. 1. 521. Longest Uncommon Subsequen ...
- 前端(小程序)项目Aes.js/Md5.js加密的处理方法
做项目中需要对前端数据加密传输这个时候需要用到前端加密的算法主要是:Aes.js,Md5.js 一.Vue项目用到的aes.js加密. 1.直接在index.html引入aes.js或者在npm in ...
- gitlab quickly install
一.安装gitlab依赖环境 yum -y install vim wget epel-release yum install curl policycoreutils openssh-server ...
- 找不到dll原因
1.没有生成成功: A.代码有错误 B.引用dll有问题(dll生成失败|dll版本不对) C.源文件损坏 2.dll生成路径不对 3.对dll的引用丢失
- Spring学习笔记之基础、IOC、DI(1)
0.0 Spring基本特性 Spring是一个开源框架:是基于Core来架构多层JavaEE系统 1.0 IOC 控制反转:把对象的创建过程交给spring容器来做. 1.1 application ...
- Android java处理保留小数点后几位
方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = ...
- 【Oracle】ORA-38171: Insufficient privileges for SQL management object operation
问题: 使用SQL PLAN MANAGEMENT的时候运行下面的存储过程报错. SYS@GOOD> conn scott/tiger Connected. SCOTT@GOOD> DEC ...
- TOF相机基本知识
TOF是Time of flight的简写,直译为飞行时间的意思.所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后利用传感器接收从物体返回的光,通过探测光脉冲的飞行时间来得到目标物的距离.TO ...
- nginx配置和测试
测试nginx处理能力和IO读写能力,使用工具webbench.iozone. 1.nginx测试 使用webbench工具,增加并发量,时间分别取30s,60s 1.webbench -c 200 ...