【转载】
近做项目时,出现了一个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包
- 配置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"); } }
项目截图: -
运行截图:
相关推荐
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...
Apache DBunit 的 java Swing gui 和数据生成器,用于用随机数据填充 MySql 5.X 数据库。 功能列表: 清理所有数据库... 将生成的数据导出为sql插入语句用于调试目的的 Log4j 日志系统访问: : 了解更多信息和细节!!
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? ...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? ...
MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...