`

Log4j日志 自定义字段 写入数据库

    博客分类:
  • java
 
阅读更多

 

1、在MySQL中的Test数据库里建一张名日志表。脚本如下。
/*
SQLyog Enterprise - MySQL GUI v6.03
Host - 5.0.83-community-nt : Database - test
*********************************************************************
Server version : 5.0.83-community-nt
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
create database if not exists `test`;
USE `test`;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*Table structure for table `systemlog` */
DROP TABLE IF EXISTS `systemlog`;
CREATE TABLE `systemlog` (
  `username` varchar(16) default NULL,
  `classname` varchar(128) default NULL,
  `createdate` datetime default NULL,
  `id` int(11) NOT NULL auto_increment,
  `content` varchar(1000) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
/*Data for the table `systemlog` */
表结构如下图
Log4j日志 自定义字段 写入数据库 - 任我行 - 任我行java博客
 
2、Log4j日志属性文件配置如下:

log4j.logger.SYSTEM = DEBUG,JDBC
#JDBC configure
log4j.appender.JDBC.Threshold=DEBUG
log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.JDBC.driver=com.mysql.jdbc.Driver
log4j.appender.JDBC.URL=jdbc:mysql://localhost:3306/test
log4j.appender.JDBC.user=root
log4j.appender.JDBC.password=3619379
log4j.appender.JDBC.layout=org.apache.log4j.PatternLayout
log4j.appender.JDBC.sql=INSERT INTO systemlog(username,createdate,classname,content)VALUES('%X{username}','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')

3、日志工具类源码如下:

package test;

import org.apache.log4j.Logger;
import org.apache.log4j.MDC;

publicclassLogUtil{

 privatestaticLogger logger =Logger.getLogger("SYSTEM");
 
 
 /**
  * 崩溃级别
  * @param username
  * @param message
  */
 publicstaticvoid fatal(String username,String message){
  MDC.put("username", username);
  logger.fatal(message); 
 }
 
 /**
  * 错误级别
  * @param username
  * @param message
  */
 publicstaticvoid error(String username,String message){
  MDC.put("username", username);
  logger.error(message); 
 }
 
 /**
  * 消息级别
  * @param username
  * @param message
  */
 publicstaticvoid info(String username,String message){
  MDC.put("username", username);
  logger.info(message); 
 }
 
 /**
  * 警告级别
  * @param username
  * @param message
  */
 publicstaticvoid warn(String username,String message){
  MDC.put("username", username);
  logger.warn(message); 
 }
 
 /**
  * 调试级别
  * @param username
  * @param message
  */
 publicstaticvoid debug(String username,String message){
  MDC.put("username", username);
  logger.debug(message); 
 }
}

4、客户端调用源码如下:

package test;

publicclassTestLog{

 /**
  * @param args
  */
 publicstaticvoid main(String[] args){
  LogUtil.info("张三","看看是否在TestLog中写入了日志");
 }

}


最后运行TestLog,结果如下图所示:
Log4j日志 自定义字段 写入数据库 - 任我行 - 任我行java博客
 
Log4j日志 自定义字段 写入数据库 - 任我行 - 任我行java博客
 
 
分享到:
评论

相关推荐

    net6 控制台+ log4net+写数据库+自定义字段

    通过以上步骤,你就可以在.NET 6控制台应用中利用log4net进行日志记录,并将包含自定义字段的日志数据写入数据库。这样的实现不仅方便了日后的查询和分析,还增强了系统的可维护性和稳定性。记得在实际应用中根据...

    Log4net自定义信息(变量或属性或字段)存入数据库

    当日志消息被写入时,AdoNetAppender会从ThreadContext中提取这些属性或字段的值,并将它们插入到相应的数据库列中。这样,每次日志事件发生时,自定义信息都会被一并记录。 总结来说,通过以上步骤,你可以成功地...

    log4net日志管理(自定义字段,写数据库、文本两种模式)

    在这个特定的模块中,我们关注的是如何自定义字段,并使用两种模式——写入数据库和写入文本文件。 首先,**自定义日志字段** 是log4net的一大优点。开发者可以根据项目需求定义自己的日志模型,包含如操作名、用户...

    log4net 自定义字段保存到数据库

    配置包括定义日志适配器(Appender),例如AdoNetAppender,用于将日志信息写入数据库。 2. **创建数据库表**:为存储日志信息,需要在SQL Server 2008中创建一个表。"数据库就一个表.txt"可能包含了这个表的结构。...

    log4net保存日志到MySql数据库

    在实际项目中,你可以结合以上知识点,创建一个自定义的日志处理器,该处理器在接收到日志事件时,不仅将日志信息加密,还会根据配置的级别决定是否将其写入MySQL数据库。同时,可以通过log4net的调试功能帮助开发者...

    使用log4j 记录日志到数据库

    这篇博客“使用log4j记录日志到数据库”将介绍如何配置和使用Log4j,以便将日志信息存储到数据库中,而非传统的文本文件。数据库存储的日志便于进行结构化查询,有助于进行长期的数据分析和管理。 首先,理解Log4j...

    log4j输出日志到数据库表中

    **标题解析:** "log4j输出日志到数据库表中" 指的是使用Log4j这个流行的Java日志框架,将日志记录存储在数据库的特定表中,而不是默认的文本文件或控制台。这通常是出于日志管理、分析和长期存储的需求。 **描述...

    log4net写入数据库

    本文将深入探讨如何利用log4net将日志信息写入数据库,以及在B/S(浏览器/服务器)和C/S(客户端/服务器)架构下的具体实现方式。 首先,log4net的基本概念是不可忽视的。它是Apache Software Foundation开源的 ...

    Log4net日志功能-记录数据库异常和系统异常

    - 可以使用日志过滤器或自定义日志布局来屏蔽或替换敏感字段。 总结,log4net是.NET开发中的得力助手,通过灵活的配置和丰富的功能,可以有效地管理和记录数据库异常和系统异常,帮助开发人员和运维人员更好地理解...

    log4Net日志记录

    4. **自定义字段**:可以扩展日志信息,添加自定义字段,如用户ID、操作类型等,以满足特定需求。 5. **过滤和路由**:通过配置,可以指定哪些级别的日志应该被记录,也可以将不同级别的日志路由到不同的Appenders...

    kettle转换、作业日志自动添加进资源库配置解决方案

    例如,我们可以将连接的名称设置为“kettlefirst”,然后创建四个日志表,分别是 TB_TRANS_LOG、TB_STEP_LOG、TB_PERFORMANCE_LOG、TB_CHANNEL_LOG。 在生成日志时,对于 MySQL 需要手动修改数据库字段。例如,我们...

    Log4j+MongoDB

    `MongoDBAppender`是一个自定义的日志处理器,需要继承`org.apache.log4j.AppenderSkeleton`类,并实现`append()`方法。在`append()`方法中,将日志事件转换为MongoDB的Document对象,并使用MongoDB驱动程序的`...

    log4j-redis-appender-master.zip

    《log4j日志写入Redis扩展:打造高效日志收集缓存系统》 在IT行业中,日志管理是至关重要的一个环节,它能够帮助我们追踪应用运行状态、定位问题和进行性能分析。Log4j作为Java领域广泛使用的日志记录框架,提供了...

    log4net工程样例

    "然后保存日志到数据库和文本里" 说明log4net不仅支持将日志输出到控制台或文本文件,还可以写入数据库,提供了多样的日志存储选项。这对于日志的检索、分析和长期存储非常有用。 **标签解析:** "log4net" 是一个...

    统一格式的日志写入

    在SpringMVC项目中,"统一格式的日志写入"通常指的是通过配置日志框架,如log4j,来确保所有模块遵循一致的日志记录标准,以便于数据的管理和分析。 **日志框架log4j** Log4j是Apache的一个开源项目,是Java平台上...

    使用kafka进行自定义注解日志存储,日志存储使用的是influxDB数据库

    1. **数据格式**:确保日志数据格式适合InfluxDB的写入要求,通常采用JSON格式,包含时间戳、度量名、字段和标签等信息。 2. **性能优化**:合理设置Kafka和InfluxDB的配置参数,如分区数、副本数、批量写入大小等,...

    Asp.Net Core用NLog记录日志操作方法

    在这个配置中,我们定义了两个目标:一个用于写入数据库(log_database),另一个用于写入文件(log_file)。`<rules>`部分指定了所有logger(*)应将日志记录到这两个目标。 配置动态数据库连接: 在appsettings....

    Solution1.zip

    综上所述,这个"Solution1.zip"是一个.NET 4.0环境下的开发案例,展示了如何将SQLite数据库和log4net日志框架整合在一起,以实现日志信息的持久化存储,并且允许通过自定义字段来扩展日志记录的能力。这对于学习和...

    log4netTest

    "log4netTest"是一个项目实例,展示了如何使用log4net这一开源日志框架将日志信息成功地写入数据库。本文将深入探讨log4net的核心功能、配置以及在实际项目中的应用。 **一、log4net介绍** log4net是Apache软件...

    利用Nlog记录日志到数据库

    在配置文件中,我们需要定义一个数据库目标(DatabaseTarget),指定数据库连接字符串、表名以及日志字段。 ```xml <connectionString>your_connection_string INSERT INTO Log (LogLevel, Message, Logger,...

Global site tag (gtag.js) - Google Analytics