Log4j2 总结

学习笔记,为了加强记忆和深入理解在此记录备忘。如有错误和理解不当之处,还望指正。万分感谢!

另外,实例和内容有些是参照网络其他博文,如有侵权可联系删掉。

参考地址:https://mp.csdn.net/postedit


目录

一、必须的包

二、日志级别

三、配置文件

3.1 输出和格式

3.2 配置说明

四、使用过程中和Log4j的差别

4.1 导入的包不一样

4.2 读取配置文件方法不一样


之前总结了Log4j的入门使用,今天看看Log4j2的入门使用。Log4j2和Log4j是一个作者,只不过log4j2是重新架构的一款日志组件,他抛弃了之前log4j的不足,以及吸取了优秀的logback的设计重新推出的一款新组件。

一、必须的包

  • log4j-api-2.11.1.jar
  • log4j-core-2.11.1.jar

二、日志级别

这个和Log4j差不多

  • trace:追踪,就是程序推进一下,可以写个trace输出
  • debug:调试,一般作为最低级别,trace基本不用
  • info:输出重要的信息,使用较多
  • warn:警告,有些信息不是错误信息,但也要给程序员一些提示
  • error:错误信息。用的也很多
  • fatal:致命错误

三、配置文件

3.1 输出和格式

其中日志输出目的地和输出格式和Log4j基本一样,不再列出。参考之前的Log4j 总结

3.2 配置说明

log4j 2则已经弃用了properties这种方式,采用的是.xml,.json或者.jsn这种方式

系统选择configuration文件的优先级如下(放在src文件夹):

  • classpath下名为 log4j-test.json 或者log4j-test.jsn文件
  • classpath下名为 log4j2-test.xml
  • classpath下名为 log4j.json 或者log4j.jsn文件
  • classpath下名为 log4j2.xml

很多人认为src就是classpath,java项目中Classpath路径到底指的是哪里?

  • src不是classpath,WEB-INF/classes和lib才是classpath,WEB-INF/是资源目录, 客户端不能直接访问。
  • WEB-INF/classes目录存放src目录java文件编译之后的文件,xml、properties等资源配置文件,这是定位资源的入口。
  • lib和classes同属classpath,两者的访问优先级为: lib>classes。

配置文件说明,和Log4j的配置文件大同小异,注意个别差异就可以

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="ERROR">
  <!-- 先定义所有的appender -->
  <appenders>
    <!-- 这个输出控制台的配置 -->
    <Console name="logConsole" target="SYSTEM_OUT">
      <!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
      <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
      <!-- 这个都知道是输出日志的格式 -->
      <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
    </Console>

    <!-- 这个是输出到文件的配置 -->    
    <File name="logFile" fileName="e://test.log" append="false">
    <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
      <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
    </File>
  </appenders>


  <!-- 然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
  <loggers>
    <!-- 建立一个默认的root的logger -->
    <root level="trace">
      <appender-ref ref="logConsole" />
      <appender-ref ref="logFile" />
    </root>
  </loggers>
</configuration>

四、使用过程中和Log4j的差别

在使用的过程中和Log4j有一些区别

4.1 导入的包不一样

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

4.2 读取配置文件方法不一样

// Log4jTest是类名
static Logger logger = LogManager.getLogger(Log4jTest.class.getName());

其他使用方法基本一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值