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了

  • 相关阅读:
    把git项目放到个人服务器上
    关于fcitx无法切换输入法的问题解决
    博客变迁通知
    (欧拉回路 并查集 别犯傻逼的错了) 7:欧拉回路 OpenJudge 数据结构与算法MOOC / 第七章 图 练习题(Excercise for chapter7 graphs)
    (并查集) HDU 1856 More is better
    (并查集 不太会) HDU 1272 小希的迷宫
    (并查集 注意别再犯傻逼的错了) HDU 1213 How Many Tables
    (最小生成树 Kruskal算法) 51nod 1212 无向图最小生成树
    (并查集) HDU 1232 畅通工程
    (最小生成树 Prim) HDU 1233 还是畅通工程
  • 原文地址:https://www.cnblogs.com/mophy/p/6444760.html
Copyright © 2011-2022 走看看