使用log4j把日志写到mysql数据库

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

 

作者:邓家海

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

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

 

转载于:https://www.cnblogs.com/dengjiahai/p/4608946.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值