log4j mysql 详细日志_apache log4j实现日志插入mysql数据库

本文档介绍了如何配置log4j将日志输出到MySQL数据库,以便快速定位 WAS 环境中因超时转发导致的问题。创建了数据库和数据表用于存储日志,并在Java项目中配置了log4j.properties,通过JDBCAppender将日志信息插入数据库。测试类验证了配置的有效性。
摘要由CSDN通过智能技术生成

【转载】

近做项目时,出现了一个bug,环境为was,出现一次请求,返回多次处理结果,最终查询原因为was配置的超时转发(server1超时自动转发server2,3,4..)引起的.

为了快速定位问题的根源,所以希望能把log4j的输入写入到数据库中,因此才有了本此的文章。

1.创建mysql数据库log4j,数据表ibs_log

--建库

CREATE DATABASE `log4j`;

--建表

CREATE TABLE `ibs_log` (

`log_id` int(10) NOT NULL AUTO_INCREMENT,

`log_date` datetime NOT NULL COMMENT '日期',

`log_file` varchar(255) DEFAULT NULL COMMENT '文件名',

`log_line` varchar(255) DEFAULT NULL COMMENT '行号',

`log_thread` varchar(255) DEFAULT NULL COMMENT '线程',

`log_level` varchar(255) DEFAULT NULL COMMENT 'Log级别 info warndebug error等',

`log_message` varchar(2048) DEFAULT NULL COMMENT 'Log信息',

PRIMARY KEY (`log_id`,`log_date`),

KEY `INDEX_LOG_DATE` (`log_date`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

2.新建一个java project工程。

引入jar包

8eb0d95498e1dcba83300a31b84285db.png

配置log4j.properties

log4j.rootLogger=INFO,appender1,appender2,appender3

log4j.logger.org.springframework=ERROR

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.FileAppender

log4j.appender.appender2.File=log/IceColdMonitor.log

log4j.appender.appender2.layout=org.apache.log4j.PatternLayout

log4j.appender.appender2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n

#database

log4j.appender.appender3=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.appender3.driver=com.mysql.jdbc.Driver

log4j.appender.appender3.URL=jdbc:mysql://127.0.0.1:3306/log4j

log4j.appender.appender3.user=root

log4j.appender.appender3.password=root

log4j.appender.appender3.sql=INSERT INTO ibs_log (log_date,log_file,log_line,log_thread,log_level,log_message) VALUES ('%d{yyyy-MM-dd hh:mm:ss}','%c','%l','%t','%p','%m')

编写测试类

package com.log4j.test;

import org.apache.log4j.Logger;

public class Test {

public static void main(String[] args) {

Logger logger = Logger.getLogger(Test.class);

logger.info("test logger info");

logger.debug("test logger debug");

logger.error("test logger error");

logger.fatal("test logger fatal");

}

}

项目截图:

55c9ef78688faf4e63a45bdfa0ca538e.png

运行截图:

20160801160624333_626x338.png20160801160640708_650x111.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值