Log4J写入到数据库中
在一些日常项目中需要将log日志输出到数据库中,然后进行分析,这对于log4J来说是易如反掌的,下面我们就配置将log日志输出到数据库中。 在开始项目之前需要将mysql的驱动jar包加入到当前的项目中,然后在所使用的数据库中建立test数据库,并建立log表,建表
在一些日常项目中需要将log日志输出到数据库中,然后进行分析,这对于log4J来说是易如反掌的,下面我们就配置将log日志输出到数据库中。
在开始项目之前需要将mysql的驱动jar包加入到当前的项目中,然后在所使用的数据库中建立test数据库,并建立log表,建表语句如下:
CREATE TABLE `log4j` (
`logId` int(11) NOT NULL AUTO_INCREMENT,
`createDate` varchar(45) DEFAULT NULL,
`thread` varchar(45) DEFAULT NULL,
`level` varchar(45) DEFAULT NULL,
`class` varchar(150) DEFAULT NULL,
`message` varchar(245) DEFAULT NULL,
PRIMARY KEY (`logId`)
) ENGINE=InnoDB AUTO_INCREMENT=394 DEFAULT CHARSET=utf8
log4j.properties信息如下:
#log4j.rootCategory=INFO,A3
log4j.rootCategory=INFO,A3
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss,SSS}%m%n
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout,logfile,A3
#定义A3输出到数据库
log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.URL=jdbc:mysql://18.8.10.104:3306/test
log4j.appender.A3.driver=com.mysql.jdbc.Driver
log4j.appender.A3.user=root
log4j.appender.A3.password=bistest1
#定义A3的布局和执行的SQL语句
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=INSERT INTO log4j(createDate,thread,level,class,message) values(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')
测试代码如下:
public class Log4JTest {
Logger logger = Logger.getLogger(Log4JTest.class);
public Log4JTest() {
logger.warn("yes i do");
}
public static void main(String[] args) {
Logger logger = Logger.getLogger(Log4JTest.class);
System.out.println(System.getProperty("user.dir"));
PropertyConfigurator.configure("src/log4j.properties");
logger.debug("Here is DEBUG messgae");
logger.info("Here is INFO message");
logger.warn("Here is WARN message");
logger.error("Here is ERROR message");
logger.fatal("Here is FATAL message");
}
}
当执行测试代码时,你将发现log日志信息被写入到了数据库中
备注:本例使用的数据库为mysql 5.1、如果使用其他类型的数据库,请按照具体的数据库修改驱动信息以及其他相关信息
本例不再详细讲解,其中的参数信息请参见我的另一篇文章:http://blog.csdn.net/liyong635/article/details/13988209
推荐阅读
-
PowerDesigner 建立与SQLSERVER 2005数据库的连接以便生成数据库和从数据库生成到PD中
-
PowerDesigner 建立与数据库的连接以便生成数据库和从数据库生成到PD中(Oracle 10G版)
-
shell脚本正则匹配文件中的Email并写入到文件中代码分享
-
Python将txt文件输入到MySQL数据库中
-
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
-
1亿条数据如何分表100张到Mysql数据库中(PHP)
-
Python写入数据到MP3文件中的方法
-
读取数据库中数据到数组的类
-
SQL高级应用之同服务器上复制表到另一数据库中并实现去重复
-
mysql怎么把一个数据库的表复制到另一个数据库中