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` */
表结构如下图
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,结果如下图所示:
相关推荐
通过以上步骤,你就可以在.NET 6控制台应用中利用log4net进行日志记录,并将包含自定义字段的日志数据写入数据库。这样的实现不仅方便了日后的查询和分析,还增强了系统的可维护性和稳定性。记得在实际应用中根据...
当日志消息被写入时,AdoNetAppender会从ThreadContext中提取这些属性或字段的值,并将它们插入到相应的数据库列中。这样,每次日志事件发生时,自定义信息都会被一并记录。 总结来说,通过以上步骤,你可以成功地...
在这个特定的模块中,我们关注的是如何自定义字段,并使用两种模式——写入数据库和写入文本文件。 首先,**自定义日志字段** 是log4net的一大优点。开发者可以根据项目需求定义自己的日志模型,包含如操作名、用户...
配置包括定义日志适配器(Appender),例如AdoNetAppender,用于将日志信息写入数据库。 2. **创建数据库表**:为存储日志信息,需要在SQL Server 2008中创建一个表。"数据库就一个表.txt"可能包含了这个表的结构。...
在实际项目中,你可以结合以上知识点,创建一个自定义的日志处理器,该处理器在接收到日志事件时,不仅将日志信息加密,还会根据配置的级别决定是否将其写入MySQL数据库。同时,可以通过log4net的调试功能帮助开发者...
这篇博客“使用log4j记录日志到数据库”将介绍如何配置和使用Log4j,以便将日志信息存储到数据库中,而非传统的文本文件。数据库存储的日志便于进行结构化查询,有助于进行长期的数据分析和管理。 首先,理解Log4j...
**标题解析:** "log4j输出日志到数据库表中" 指的是使用Log4j这个流行的Java日志框架,将日志记录存储在数据库的特定表中,而不是默认的文本文件或控制台。这通常是出于日志管理、分析和长期存储的需求。 **描述...
本文将深入探讨如何利用log4net将日志信息写入数据库,以及在B/S(浏览器/服务器)和C/S(客户端/服务器)架构下的具体实现方式。 首先,log4net的基本概念是不可忽视的。它是Apache Software Foundation开源的 ...
- 可以使用日志过滤器或自定义日志布局来屏蔽或替换敏感字段。 总结,log4net是.NET开发中的得力助手,通过灵活的配置和丰富的功能,可以有效地管理和记录数据库异常和系统异常,帮助开发人员和运维人员更好地理解...
4. **自定义字段**:可以扩展日志信息,添加自定义字段,如用户ID、操作类型等,以满足特定需求。 5. **过滤和路由**:通过配置,可以指定哪些级别的日志应该被记录,也可以将不同级别的日志路由到不同的Appenders...
例如,我们可以将连接的名称设置为“kettlefirst”,然后创建四个日志表,分别是 TB_TRANS_LOG、TB_STEP_LOG、TB_PERFORMANCE_LOG、TB_CHANNEL_LOG。 在生成日志时,对于 MySQL 需要手动修改数据库字段。例如,我们...
`MongoDBAppender`是一个自定义的日志处理器,需要继承`org.apache.log4j.AppenderSkeleton`类,并实现`append()`方法。在`append()`方法中,将日志事件转换为MongoDB的Document对象,并使用MongoDB驱动程序的`...
《log4j日志写入Redis扩展:打造高效日志收集缓存系统》 在IT行业中,日志管理是至关重要的一个环节,它能够帮助我们追踪应用运行状态、定位问题和进行性能分析。Log4j作为Java领域广泛使用的日志记录框架,提供了...
"然后保存日志到数据库和文本里" 说明log4net不仅支持将日志输出到控制台或文本文件,还可以写入数据库,提供了多样的日志存储选项。这对于日志的检索、分析和长期存储非常有用。 **标签解析:** "log4net" 是一个...
在SpringMVC项目中,"统一格式的日志写入"通常指的是通过配置日志框架,如log4j,来确保所有模块遵循一致的日志记录标准,以便于数据的管理和分析。 **日志框架log4j** Log4j是Apache的一个开源项目,是Java平台上...
1. **数据格式**:确保日志数据格式适合InfluxDB的写入要求,通常采用JSON格式,包含时间戳、度量名、字段和标签等信息。 2. **性能优化**:合理设置Kafka和InfluxDB的配置参数,如分区数、副本数、批量写入大小等,...
在这个配置中,我们定义了两个目标:一个用于写入数据库(log_database),另一个用于写入文件(log_file)。`<rules>`部分指定了所有logger(*)应将日志记录到这两个目标。 配置动态数据库连接: 在appsettings....
综上所述,这个"Solution1.zip"是一个.NET 4.0环境下的开发案例,展示了如何将SQLite数据库和log4net日志框架整合在一起,以实现日志信息的持久化存储,并且允许通过自定义字段来扩展日志记录的能力。这对于学习和...
"log4netTest"是一个项目实例,展示了如何使用log4net这一开源日志框架将日志信息成功地写入数据库。本文将深入探讨log4net的核心功能、配置以及在实际项目中的应用。 **一、log4net介绍** log4net是Apache软件...
在配置文件中,我们需要定义一个数据库目标(DatabaseTarget),指定数据库连接字符串、表名以及日志字段。 ```xml <connectionString>your_connection_string INSERT INTO Log (LogLevel, Message, Logger,...