zoukankan      html  css  js  c++  java
  • 使用log4j把日志写到mysql数据库

    log4j可以支持将log输出到文件,数据库,甚至远程服务器,本教程以mysql数据库为例来讲解:

    作者:Jesai

    没有伞的孩子,只能光脚奔跑!

    1.数据库设计

    数据库表

    4-1日志表(log)

    字段名

    字段解释

    数据类型

    数据

    长度

    是否为空

    是否为主键

    是否为外键

    id

    日志编号

    bigint

    20

    create_time

    创建时间

    datetime

    logs

    日志内容

    varchar

    200

    数据库创建:

    Create database log;

     

    切换数据库:

    Use log;

    创建表:

    CREATE TABLE `log` (
    `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
     `create_time` datetime NOT NULL,
     `logs` varchar(200) NOT NULL,
     primary key(`id`)
     )
     ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

    2.项目准备

    新建一个java项目 log4j_write_mysql

    File->new ->java Project:

    新建一个测试类Test:

    新建一个lib文件,导入log4j的包:

     

    配置log4j配置文件

    log4j.rootLogger=ERROR,appender1,appender2
    
    log4j.appender.appender1=org.apache.log4j.ConsoleAppender
    log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
    log4j.appender.appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
    
    log4j.appender.appender2=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.appender2.driver=com.mysql.jdbc.Driver
    log4j.appender.appender2.URL=jdbc:mysql://localhost:3306/log?useUnicode=true&characterEncoding=UTF-8
    log4j.appender.appender2.user=root
    log4j.appender.appender2.password=137151
    log4j.appender.appender2.sql=insert into zuidaima_log (create_time,log) VALUES ('%d{yyyy-MM-dd hh:mm:ss}', '%c %p %m %n')
    log4j.appender.appender2.layout=org.apache.log4j.PatternLayout

    测试类编码:

    /**
     * 
     */
    package log4j_write_mysql;
    
    import org.apache.log4j.Logger;
    
    
    
    /**  
     *   
     * 项目名称:log4j_write_mysql  
     * 类名称:Test  
     * 类描述:  
     * 创建人:邓家海  
     * 创建时间:2015年5月28日 上午1:03:01  
     * 修改人:deng  
     * 修改时间:2015年5月28日 上午1:03:01  
     * 修改备注:  
     * @version   
     *   
     */
    
    public class Test {
            public static Logger log = Logger.getLogger(Test.class);
    
            public static void main(String[] args) {
                try {
                    throw new Exception("最代码错误log");
                } catch (Exception e) {
                    log.error(e.getMessage());
                }
            }
        
    }

    3:运行结果:

    控制台信息:

    数据库信息:

    改进,整合控制台、日志文件、数据库三个输出:

    配置文件代码:

    log4j.rootLogger=ERROR,appender1,appender2,log2
    
    log4j.appender.appender1=org.apache.log4j.ConsoleAppender
    log4j.appender.appender1.Target=System.err
    log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
    log4j.appender.appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
    
    log4j.appender.appender2=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.appender2.driver=com.mysql.jdbc.Driver
    log4j.appender.appender2.URL=jdbc:mysql://localhost:3306/log?useUnicode=true&characterEncoding=UTF-8
    log4j.appender.appender2.user=root
    log4j.appender.appender2.password=137151
    log4j.appender.appender2.sql=insert into log (create_time,logs) VALUES ('%d{yyyy-MM-dd hh:mm:ss}', '%c %p %m %n')
    log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
    
    log4j.appender.log2=org.apache.log4j.FileAppender
    log4j.appender.log2.file=log.log
    log4j.appender.log2.layout=org.apache.log4j.PatternLayout
    log4j.appender.log2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n

    如需要源代码,请发帖索要:

    http://tieba.baidu.com/f?kw=%C8%ED%BC%FE%C6%B5%B5%C0&fr=home

  • 相关阅读:
    Cocos坐标之convertToNodeSpace、convertToWorldSpace、convertToNodeSpaceAR、convertToWorldSpaceAR区别和用法
    CocosCraetor中图像资源Texture和SpriteFrame的区别
    git的基本使用方式
    C++中的内存对齐
    介绍 Android 的 Camera 框架
    Android多媒体框架图
    Android程序架构基本内容概述
    Android 框架简介--Java环境(转)
    android架构图示
    最全的Android源码目录结构详解(转)
  • 原文地址:https://www.cnblogs.com/dengjiahai/p/4608946.html
Copyright © 2011-2022 走看看