Maison > base de données > tutoriel mysql > le corps du texte

Log4J写入到数据库中

WBOY
Libérer: 2016-06-07 15:00:12
original
1096 Les gens l'ont consulté

在一些日常项目中需要将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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal