问题:项目中要求将登陆用户进行的操作保存到数据库,以供查询等。经过了解以及网上查询,决定使用log4j日志文件。
使用步骤:
一:在lib目录下,导出使用log4j 日志文件要使用的jar包; 在classpath目录下(即:项目的src目录下),新建一个日志文件,统一命名为:log4j.properties;
二:根据数据库中的字段,在上面新建的日志文件中,进行参数配置;
1、当数据库中的字段没有登录者的相关信息如:userId、userName时,日志文件中的配置如下:
#level log4j建议使用4个级别,优先级从高到低是:ERROR、WARN、INFO、DEBUG
log4j.rootLogger=WARN,DATABASE
#log4j.addivity.org.apache=true
#用于数据库(MySql 数据库)
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:mysql://172.16.1.223:3306/lgisp?characterEncoding=utf8
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=lgisp123\#
log4j.appender.DATABASE.sql= INSERT INTO lgisp_config_log(LOG_LEVEL,LOG_TYPE,OPERATE_NAME,OPERATE_TIME,OPERATE_DES) VALUES('%p','%p','%c','%d{yyyy-MM-dd HH:mm:ss}','%m')
2、当数据库中的字段涉及到登录者的相关信息时,这时,我们要使用log4j 为我们提供的MDC(MDC是log4j中非常有用的类,用于存储应用程序中的上下文信息 context information,从而可以在log中使用这些上下文信息。MDC内部使用了类似Map 的机制来存储信息,上下文信息也是每个线程独立的存储,所不同的是信息都是以它们的key值存储在map 中,相对应的方法是:MDC.put(key,value);MDC.remove(key);MDC.get(key);在配置PatternLayout时,使用::%x{key}来输出对应的value。)
在程序中适合的位置,我们可以使用log4j的MDC保存登录者的相关信息:
MDC.put("userId", DEFAULT_USERID);
MDC.put("userName",DEFAULT_Name );
然后:把日志文件中的:log4j.appender.DATABASE.sql语句 写成:log4j.appender.DATABASE.sql= INSERT INTO lgisp_config_log(LOG_LEVEL,LOG_TYPE,OPERATE_NAME,OPERATE_TIME,OPERATE_ENDTIME,OPERATE_USER_ID,OPERATE_USER_NAME,OPERATE_DES) VALUES('%p','%p','%c','%d{yyyy-MM-dd HH:mm:ss}','%d{yyyy-MM-dd HH:mm:ss}','%X{userId}','%X{userName}','%m')
注:log4j日志文件中输出格式控制:PatternLayout参数含义(引用http://logging.apache.org/log4j/2.x/manual/layouts.html)
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
分享到:
相关推荐
功能 ... 实验室管理:包括实验室信息管理、设备管理、预约管理等; 人员管理:包括成员管理、学生管理、教师管理等; 课程管理:包括课程信息...日志管理:使用Log4j框架记录系统日志,方便开发者查找问题和优化系统;
日志信息的输出目的地指定了日志将打印到控制台还是文件,例如org.apache.log4j.ConsoleAppender(控制台)和org.apache.log4j.FileAppender (文件);而输出格式则控制了日志信息的显示内容。 【备注】 1.项目代码...
日志管理:SLF4J 1.7、Log4j 页面交互:Vue2.x Java洗衣店智能管理系统:实现对洗衣店的一体化管理,集前台衣物管理系统、会员卡管理系统、 财务报表系统等功能于一身,提高洗衣店的管理效率和服务水平。 Java洗衣...
查询日志(query log):可选地记录所有发送到MySQL服务器的SQL查询,用于调试和审计。 慢查询日志(slow query log):记录执行时间超过指定阈值的查询,帮助识别和优化性能瓶颈。 应用场景 MySQL广泛应用于...
查询日志(query log):可选地记录所有发送到MySQL服务器的SQL查询,用于调试和审计。 慢查询日志(slow query log):记录执行时间超过指定阈值的查询,帮助识别和优化性能瓶颈。 应用场景 MySQL广泛应用于...
log4j.appender.appender3.URL=jdbc:mysql://127.0.0.1:3306/doroodo?characterEncoding=UTF-8 ---->日志数据库链接 log4j.appender.appender3.user=root ---->日志数据库用户名 log4j.appender.appender3.password=...
14、log4j日志推送到elasticsearch集成 15、thymeleaf自定义标签 16、文件系统(支持nginx、http、ftp、tomcat等方式配置) 17、消息通知(通过netty实时推送) 18、quartz定时任务管理 19、@CheckParam自定义检测...
通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器 jxl-2.6.jar 通过java操作excel表格的工具类库 jta-1.1.jar Java事务API,为J2EE平台提供了分布式事务服务 ...
第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...
第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...
在本书架构讲解的过程中,分别使用并讲解了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容为本书十种架构原型程序包、个人通信录及办公自动化系统源程序,以及本书所使用的所有软件的安装程序。 因为每次...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等; 第9篇为实战篇,内容为两个典型的应用系统:...
用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎 JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛系统 (Spring+Struts+Hibernate)、宠物...
通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器 jxl-2.6.jar 通过java操作excel表格的工具类库 jta-1.1.jar Java事务API,为J2EE平台提供了分布式事务服务 ...
第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...
第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...