log4j2的使用总结

2023-11-28 15:57:59 浏览数 (1)

一张图带你了解log4j2使用


  • 环境准备
  • log4j-api-2.3.jar
  • log4j-core-2.3.jar
  • log4j-web-2.3.jar (在web项目中需要引入的jar包。这里做了数据的初始化)
  • 数据初始化

我们知道在web项目的入口在web.xml中。所以我们得加入log4j的监听器和过滤器

代码语言:txt复制
代码语言:txt复制
 <listener>
代码语言:txt复制
     <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
代码语言:txt复制
 </listener>
代码语言:txt复制
 <filter>
代码语言:txt复制
     <filter-name>log4jServletFilter</filter-name>
代码语言:txt复制
     <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
代码语言:txt复制
 </filter>
代码语言:txt复制
 <filter-mapping>
代码语言:txt复制
     <filter-name>log4jServletFilter</filter-name>
代码语言:txt复制
     <url-pattern>/*</url-pattern>
代码语言:txt复制
     <dispatcher>REQUEST</dispatcher>
代码语言:txt复制
     <dispatcher>FORWARD</dispatcher>
代码语言:txt复制
     <dispatcher>INCLUDE</dispatcher>
代码语言:txt复制
     <dispatcher>ERROR</dispatcher>
代码语言:txt复制
 </filter-mapping>
代码语言:txt复制

到这里我们log4j就已经配置成功了。但是在实际开发中发现没有上面的监听器和过滤器也是可以的。由于时间问题没有研究原因。大概网上查阅了一下好像是log4j源码中有默认的配置。我们上面没有指定具体的配置文件的地址在哪,log4j就会读取jar中默认的配置。系统中选择的默认配置文件有以下几种:

  • classpath下的名为log4j2-test.json 或者log4j2-test.jsn的文件.
  • classpath下的名为log4j2-test.xml的文件.
  • classpath下名为log4j2.json 或者log4j2.jsn的文件.
  • classpath下名为log4j2.xml的文件.
  • log4j2配置详解
  • logger等级
  • 共有8个等级 按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.
  • All:最低等级的,用于打开所有日志记录.
  • Trace:是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出.
  • Debug:指出细粒度信息事件对调试应用程序是非常有帮助的.
  • Info:消息在粗粒度级别上突出强调应用程序的运行过程.
  • Warn:输出警告及warn以下级别的日志.
  • Error:输出错误信息日志.
  • Fatal:输出每个严重的错误事件将会导致应用程序的退出的日志.
  • OFF:最高等级的,用于关闭所有日志记录.    
  • 举例
代码语言:txt复制
像上面那样我们已经配置了很多Logger了。每个Logger都有自己的名字。我们在代码中这样使用
`private static final Logger bossRequestTeletextLogger = LogManager.getLogger("bossRequestTeletextLogger");`
意思就是bossRequestTeletxtLogger将使用我们最后一个Logger,该Logger等级是info等级的。存储采用的是`teletextLoggerFile`存储到文件中的。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞