乐趣区

关于java:Spring-Boot-2-中如何使用-Log4j2-记录日志

上一篇咱们介绍了 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。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源

退出移动版