【转载】
近做项目时,出现了一个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. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...
- `log4j.appender.appender2=org.apache.log4j.jdbc.JDBCAppender`: 创建了一个 JDBCAppender 实例,用于将日志信息存储到数据库。 - `log4j.appender.appender2.driver=com.mysql.jdbc.Driver`: 指定了数据库...
本篇文章将深入探讨这两个关键组件:日志配置文件`log4j.xml`和MySQL数据库驱动文件`mysql-connector-java-5.1.39-bin.jar`。 首先,我们来了解`log4j.xml`。Log4j是Apache组织提供的一款开源的日志记录框架,广泛...
本篇将详细介绍如何配置Log4j来将日志信息存储到MySQL数据库中,以实现日志的集中管理和分析。 首先,我们需要了解Log4j的基本结构。Log4j主要由三个组件构成:Logger(日志器)、Appender(输出端)和Layout(布局...
- 这段配置设置了JDBCAppender,连接到名为`testdb`的MySQL数据库,使用root用户和密码,并定义了一个SQL插入语句,用于将日志信息写入`logs`表。 2. **数据库准备**: - 在数据库中创建对应的表结构,如上例中的...
**标题解析:** "log4j输出日志到数据库表中" 指的是使用Log4j这个流行的Java日志框架,将日志记录存储在数据库的特定表中,而不是默认的文本文件或控制台。这通常是出于日志管理、分析和长期存储的需求。 **描述...
本文将探讨如何使用Maven、Spring MVC、JDBCTEMPLATE和日志框架Slf4j实现一个基于MySQL数据库的简单注册功能。首先,我们需要搭建一个开发环境,选用的技术栈包括: 1. **Maven** - 作为项目管理和构建工具,Maven...
Log4j是Apache的一个开源项目,它为Java应用程序提供了一个灵活的日志系统。这个系统能够帮助开发者记录程序运行过程中的各种信息,包括错误、警告、调试信息等,这对于软件的维护和故障排查至关重要。Log4j的核心...
如果是一个服务,它可能负责收集和处理应用程序的日志,然后通过Log4j和MySQLAppender将这些日志存储到MySQL数据库中。 总结起来,通过使用Log4j与MySQL的集成,我们可以实现对日志的详细控制,并将这些日志安全地...
这段配置指示Log4j使用JDBCAppender连接到本地MySQL服务器上的mydatabase数据库,并插入一条包含logger名、日志级别、消息和时间戳的日志记录。 接下来,我们需要定义一个Layout来决定日志的格式。在上述示例中,...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而Log4j则是Java平台上广泛使用的日志记录框架。这两个组件在软件开发中起着至关重要的作用,尤其是在Java应用程序中。 MySQL是一款开源、免费的SQL数据库,它...
- `log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout`:定义输出到数据库的日志格式。 **5. 按天滚动的日志文件配置** - `log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender`:指定...
Log4j,作为Apache组织开发的一款开源日志框架,是Java世界中最常用的日志记录工具之一。本文将深入探讨Log4j的基本概念、配置方式以及如何将其配置来将日志信息写入数据库。 首先,我们来理解一下Log4j的核心概念...
在.NET 6框架下,构建一个控制台应用并结合log4net进行日志记录,同时将日志数据存储到数据库并支持自定义字段,是一项常见的系统监控和故障排查任务。以下将详细介绍如何实现这一功能。 首先,log4net是Apache的一...
这段配置会将日志信息按照指定的模式写入MySQL数据库。 二、邮件日志通知 当系统出现异常或关键错误时,通过电子邮件即时通知开发者或运维人员显得尤为重要。Log4j的SMTPAppender可以帮助实现这一功能。你需要配置...
这个压缩包包含了MyBatis框架运行所必需的jar包,同时也提供了log4j和MySQL数据库连接所需的库,以及可能用于Maven构建系统的相关依赖。以下是对这些关键组件的详细解释: 1. **MyBatis jar包**:MyBatis的核心库...
SLF4J提供了一个绑定机制,允许开发者在编译时或运行时选择特定的日志实现,如Log4j、Java Util Logging等。这个版本的SLF4J为开发者提供了更多的灵活性,可以根据项目的具体需求选择合适的日志解决方案。 最后,`...
9. **slf4j-api-1.7.5.jar**:Simple Logging Facade for Java,SLF4J提供一个简单的日志记录接口,允许在部署时插入任何日志实现,包括Log4j、JDK日志等。 在开发基于MyBatis的Java应用时,这些jar文件通常会被...
log4cxx是Apache软件基金会开发的一个C++版的日志框架,它是基于Java的log4j的移植。这个库提供了灵活的日志记录功能,允许开发者在不同级别(如DEBUG, INFO, WARN, ERROR, FATAL)记录日志信息,支持多种输出方式,...