zoukankan      html  css  js  c++  java
  • 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了

  • 相关阅读:
    2017 ACM/ICPC Asia Regional Qingdao Online
    2017 ACM/ICPC Asia Regional Qingdao Online
    2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Sum
    2017 ACM/ICPC Asia Regional Shenyang Online array array array
    无权最短路
    解题报告:poj 3070
    矩阵学习笔记
    拓扑排序
    LIS严格递增和非递减模板
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-A banana·
  • 原文地址:https://www.cnblogs.com/mophy/p/6444760.html
Copyright © 2011-2022 走看看