上一篇咱们介绍了Spring Boot 2.x中默认日志框架Logback的应用。明天持续说说日志,接下来咱们要讲是前段时间爆出核弹破绽的Log4j2。尽管出了破绽,让很多小伙伴苦楚了1-2周(加班),但不可否认的是Log4j2仍然是目前性能最好的日志框架。所以,当Logback性能上无奈撑持的时候,替换应用Log4j2还是最为疾速便捷的办法。上面,咱们就来学习一下如何在Spring Boot 2.x版本中,替换Logback,应用Log4j2记录日志。

入手试一试

这里省略Spring Boot我的项目的根底创立,如果您还不会能够看本教程的疾速入门。

上面的操作你能够基于Spring Boot 2.x中默认日志框架Logback一文的例子继续下去,也能够用任何一个Spring Boot 2.x的我的项目来尝试。

第一步:在pom.xml中引入Log4j2的Starter依赖spring-boot-starter-log4j2,同时排除默认引入的spring-boot-starter-logging,比方上面这样:

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <exclusions>        <exclusion>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-logging</artifactId>        </exclusion>    </exclusions></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-log4j2</artifactId></dependency>

第二步:在配置文件application.properties中,通过logging.config配置指定log4j2的配置文件地位,比方上面这样:

logging.config=classpath:log4j2.xml

第三步:在resource目录下新建log4j2.xml(这里不相对,依据第二步中配置的内容来创立),而后退出log4j2的日志配置,比方,上面这样:

<?xml version="1.0" encoding="UTF-8"?><Configuration status="INFO">    <Appenders>        <Console name="Console" target="SYSTEM_OUT">            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>        </Console>    </Appenders>    <Loggers>        <Root level="INFO">            <AppenderRef ref="Console"/>        </Root>    </Loggers></Configuration>

次要是不便大家了解如何把log4j2引入Spring Boot,对于log4j2如何配置这里不做具体介绍,所以这里就放个简略配置让程序跑起来即可。如果想深刻理解log4j2的配置,能够点击这里查看

OK,到这里整合过程就完结了。是不是很简略呢?如果您学习过程中如遇艰难?能够退出咱们超高品质的Spring技术交换群,参加交换与探讨,更好的学习与提高!更多Spring Boot教程能够点击中转!,欢送珍藏与转发反对!

常见问题

可能有小伙伴会问,之前不是举荐大家用Slf4j来记录日志,隔离了具体实现的日志框架么?那我怎么晓得这一顿操作之后,真的曾经用上Log4j2了呢?

这个其实很好判断,大家只须要在用到日志的中央,加个端点,Debug跑起来,察看下log对象就能够了,比方:

上面这个是应用默认Logback的状况:

上面这个是应用Log4j2的状况

最初,因为之前Log4j2有过很大的破绽问题,大家肯定要用最新版本哦!

平安起见,建议您至多要用2.17.0以上的版本(如果用的Spring Boot 2.6.2+,那曾经是2.17.0了,不须要放心)。当然,目前最新曾经到2.17.1,您也能够本人降级到2.17.1来应用,如何降级呢?还是依照这篇文章介绍的操作即可。

代码示例

本文的残缺工程能够查看上面仓库中2.x目录下的chapter8-2工程:

  • Github:https://github.com/dyc87112/SpringBoot-Learning/
  • Gitee:https://gitee.com/didispace/SpringBoot-Learning/

如果您感觉本文不错,欢送Star反对,您的关注是我保持的能源!

欢送关注我的公众号:程序猿DD。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源