很久以前我记录日志是记录在日志文件中,今天记录一下关联数据库的方法。

一、实现流程

(1)首先你需要整合log4j,并且能够正确输出日志

可以参照:

spring mvc 配置log4j

这个版本可能比较旧了,但是配制方法应该是没有什么太大变化。

这里比较容易漏的一点就是在web.xml文件中写监听器配置:

(2)写配置文件

其实一开始接触log4j的人可能比较难搞懂这个配置文件到底是怎么作用的,我也是一样,后来多动手配置了几次才搞明白大概。

这几个位置决定了什么位置下的日志要到哪个appender里面去处理。例如:

  1. com.xie.service包下的所有日志都需要经过CONSOLE和mybatis_log去进行处理。
  2. com.xie.service.loginService都需要经过CONSOLE和userService去进行处理。

这样就可以控制日志记录的粒度了。

这个CONSOLE的appender作用是把日志输出到控制台上:

  1. log4j.appender.CONSOLE指定了由哪个类来进行处理。
  2. log4j.appender.CONSOLE.Threshold指定了输出debug级别以上的日志。
  3. log4j.appender.CONSOLE.layout指定了输出时页面的布局。
  4. log4j.appender.CONSOLE.layout.ConversionPattern指定了输出时的样式。

其实就是配置数据库,然后通过执行sql语句来把日志存在数据库中。

  1. ‘%p’等是log4j自带的日志参数,可以获取一些log的详细信息。
  2. 也可以通过’%X{username}’自定义要log的参数。

(3)使用

  1. getLogger确定输出日志类的位置。
  2. MDC.put自定义log的属性,key-value值的方式传入参数。
  3. logger.debug()进行日志记录,debug()中的内容即为log4j中的参数’%m’。

二、总结

这样就能比较简单地自定义log4j的功能了,但是现在估计都在用logback了吧,下次尝试进行spring mvc和logback的组合。

发表评论

电子邮件地址不会被公开。 必填项已用*标注