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了

时间: 2024-10-14 19:02:33

log4j日志存储到数据库的相关文章

项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库

作者:泥沙砖瓦浆木匠 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 如果我的帮到了你,是否乐意捐助一下或请一杯啤酒也好呢?有你支持,干的更好~ 点这参与众筹 我的支付宝:13958686678 一. 前言 泥瓦匠又和大家见面了,最近两天我在Code Review ,顺便代码小小的Refactoring(重构)下.先了解这个项目吧,这次解决的是数据源配置优化.因为这web项目中配置数据源的地方很多.例如JDBC要配置数据源,Mybatis要配置数据源,Quartz定时任务要配

log4j 将日志记录到数据库

需要以下jar包: ---log4j commons-loggin-1.1.1.jar log4j-1.2.16.jar ---mysql mysql-connector-java-5.1.15-bin.jar ---log4j.properties配置内容 log4j.rootLogger=INFO,DATABASE #JDBC Appender log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.

log4j教程 12、日志记录到数据库

log4j API提供 org.apache.log4j.jdbc.JDBCAppender 对象,它能够将日志信息在指定的数据库. JDBCAppender 配置: Property 描述 bufferSize 设置缓冲区的大小.默认大小为1 driver 设置驱动程序类为指定的字符串.如果没有指定驱动程序类,默认为sun.jdbc.odbc.JdbcOdbcDriver layout 设置要使用的布局.默认布局是org.apache.log4j.PatternLayout password

SQL Server数据库事务日志存储序列

原文 原文:http://blog.csdn.net/tjvictor/article/details/5251351 ? 如果你的数据库运行在完整或是批量日志恢复模式下,那么你就需要使用作业(job)来定期备份事务日志,保持你的事务文件大小处在一个可管理的范围.当你需要还原事务日志时,你就需要按照创建事务日志的顺序来恢复它们.你可以参考存在msdb..backupset表中的信息来确定还原文件的顺序,使用FirstLSN和LastLSN列的值作参考.当你备份时,这些备份信息就会存在backup

Spring整合log4j日志组件

PHP转Java有一段时间了,最近在学习Spring的一些组件安装.配置及使用.今天学习了log4j作为项目日志操作组件为web开发节省了大量在项目过程中记录日志及日志输送存储的工作. Log4j是Apache的一个开放源代码项目,通过使用Log4j,控制日志信息输送的目的地可以为控制台.文件.数据库.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:可以控制每一条日志的信息内容和信息输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程:

Spring整合log4j日志组件(转)

Log4j是Apache的一个开放源代码项目,通过使用Log4j,控制日志信息输送的目的地可以为控制台.文件.数据库.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:可以控制每一条日志的信息内容和信息输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程:甚至还可以在不需要修改业务逻辑代码.重启web服务,只需要通过一个修改配置文件就可以实现控制项目的日志动作. 首先,日志的级别有:OFF .FATAL .ERROR.WARN.INFO.

Log4J日志配置详解

一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR <

JAVA log4j日志文件使用

//1.导入jar包,log4j-1.2.17.jar//2.src下创建log4j.properties文件//3.配置properties文件/*log4j.rootLogger(默认是对整个工程生效)=DEBUG,stdout(控制台),a, b, -日志级别(ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF)log4j.logger.com.hutu=info, stdout,表示该日志只对package com.hutu生效 log4j.

log4j日志输出到web项目指定文件夹

感谢 eric2500 的这篇文章:http://www.cxyclub.cn/n/27860/ 摘要:尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终在eric2500的指导下搞定,下面是记录. 其原理在于log4j的配置文件支持服务器的vm的环境变量,如${oss.log4j.path},在log4j加载配置文件之前,先用 System.setProperty("","")设置好日志文件路径,这一操作通过一个初始的servlet来实现.