`

javaWeb 使用log4j 记录系统日志 (记录保存到数据库)

阅读更多

问题:项目中要求将登陆用户进行的操作保存到数据库,以供查询等。经过了解以及网上查询,决定使用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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。 

分享到:
评论

相关推荐

    基于JavaWeb,SSM,MySQL的实验室预约管理系统(包含前后端完整源代码及数据库)

    功能 ... 实验室管理:包括实验室信息管理、设备管理、预约管理等; 人员管理:包括成员管理、学生管理、教师管理等; 课程管理:包括课程信息...日志管理:使用Log4j框架记录系统日志,方便开发者查找问题和优化系统;

    基于javaweb+mysql的安全即时通讯系统源码+项目说明(课程设计).zip

    日志信息的输出目的地指定了日志将打印到控制台还是文件,例如org.apache.log4j.ConsoleAppender(控制台)和org.apache.log4j.FileAppender (文件);而输出格式则控制了日志信息的显示内容。 【备注】 1.项目代码...

    Java洗衣店智能管理系统源码.zip

    日志管理:SLF4J 1.7、Log4j 页面交互:Vue2.x Java洗衣店智能管理系统:实现对洗衣店的一体化管理,集前台衣物管理系统、会员卡管理系统、 财务报表系统等功能于一身,提高洗衣店的管理效率和服务水平。 Java洗衣...

    javaweb(jsp)-课程设计-图书购物网站,基于JSP(MVC模式)和MySQL的网上图书购物系统.zip

    查询日志(query log):可选地记录所有发送到MySQL服务器的SQL查询,用于调试和审计。 慢查询日志(slow query log):记录执行时间超过指定阈值的查询,帮助识别和优化性能瓶颈。 应用场景 MySQL广泛应用于...

    基于MVC模式的简单购物车实验,JavaWeb作业。Servelet Mysql JSP .zip

    查询日志(query log):可选地记录所有发送到MySQL服务器的SQL查询,用于调试和审计。 慢查询日志(slow query log):记录执行时间超过指定阈值的查询,帮助识别和优化性能瓶颈。 应用场景 MySQL广泛应用于...

    智能开发平台 DOROODO

    log4j.appender.appender3.URL=jdbc:mysql://127.0.0.1:3306/doroodo?characterEncoding=UTF-8 ---->日志数据库链接 log4j.appender.appender3.user=root ---->日志数据库用户名 log4j.appender.appender3.password=...

    WEB后台管理基础框架

    14、log4j日志推送到elasticsearch集成 15、thymeleaf自定义标签 16、文件系统(支持nginx、http、ftp、tomcat等方式配置) 17、消息通知(通过netty实时推送) 18、quartz定时任务管理 19、@CheckParam自定义检测...

    web开发常用jar

    通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器 jxl-2.6.jar 通过java操作excel表格的工具类库 jta-1.1.jar Java事务API,为J2EE平台提供了分布式事务服务 ...

    Java Web整合开发王者归来(共4部分含源代码)part2

    第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...

    Java Web整合开发王者归来(共4部分含源代码)part1

    第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...

    开发者突击:Java web主流框架整合开发 源代码4

    在本书架构讲解的过程中,分别使用并讲解了JDBC、Log4j、Sitemesh、JUnit技术。  随书附赠光盘内容为本书十种架构原型程序包、个人通信录及办公自动化系统源程序,以及本书所使用的所有软件的安装程序。 因为每次...

    开发者突击:Java Web主流框架整合开发.part11.rar

    在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。  随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。  本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...

    Java.Web整合开发王者归来.part3

    第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等; 第9篇为实战篇,内容为两个典型的应用系统:...

    Java Web整合开发王者归来6/16

    用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎 JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛系统 (Spring+Struts+Hibernate)、宠物...

    java开发常用jar包

    通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器 jxl-2.6.jar 通过java操作excel表格的工具类库 jta-1.1.jar Java事务API,为J2EE平台提供了分布式事务服务 ...

    Java Web整合开发王者归来

    第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...

    Java Web整合开发王者归来:Java Web.part3

    第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...

Global site tag (gtag.js) - Google Analytics