Spring Boot 如何配置 log4j2

Log4j2 介绍

Spring Boot 中默认使用 Logback 作为日志框架,接下来我们将学习如何在 Spring Boot 中集成与配置 Log4j2。在配置之前,我们需要知道的是 Log4j2 是 Log4j 的升级版,它在 Log4j 的基础上做了诸多改进:

  • 异步日志;
  • 支持 Java8 lambda 风格的懒加载日志;
  • 过滤器;
  • 插件;
  • 并发性改进;
  • 支持: SLF4J, Commons Logging, Log4j-1.x 以及 java.util.logging;
  • 配置热加载;
  • 自定义日志级别;

看到上面这些新特性,我们肯定特别想在我们的 Spring Boot 应用中使用 Log4j2

添加 Maven 依赖

Spring Boot 默认使用的是 logback, 想要使用 Log4j2, 我们需要首先排除掉默认的日志框架,然后添加 log4j2 依赖,下面是 pom.xml 文件:

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</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>

添加 Log4j2 配置文件

Spring Boot 支持以下 4 种格式的配置文件:

  • xml(默认的)
  • json
  • yaml
  • properties 文件

Spring Boot 如果在 classpath:目录下找到了 log4j2.xml 或者 log4j2.json 或者 log4j2.properties或者log4j2.yaml的其中任意一个配置文件,就会自动加载并使用它。

接下来,我们来看看 log4j2.xml 格式,要如何配置?

在 /src/main/resource 目录下创建 log4j2.xml 配置文件:

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="PID">????</Property>
        <Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property>
    </Properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

彩蛋

点击下方链接,免费获取数千本电子书
免费获取

相关推荐
v'sir3 分钟前
POI word转pdf乱码问题处理
java·spring boot·后端·pdf·word
李少兄7 分钟前
解决Spring Boot整合Redis时的连接问题
spring boot·redis·后端
冰逸.itbignyi1 小时前
SpringBoot之AOP 的使用
java·spring boot
码上一元5 小时前
SpringBoot自动装配原理解析
java·spring boot·后端
计算机-秋大田5 小时前
基于微信小程序的养老院管理系统的设计与实现,LW+源码+讲解
java·spring boot·微信小程序·小程序·vue
魔道不误砍柴功7 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot
枫叶_v7 小时前
【SpringBoot】22 Txt、Csv文件的读取和写入
java·spring boot·后端
路在脚下@7 小时前
Springboot 的Servlet Web 应用、响应式 Web 应用(Reactive)以及非 Web 应用(None)的特点和适用场景
java·spring boot·servlet
尘浮生8 小时前
Java项目实战II基于微信小程序的移动学习平台的设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·学习·微信小程序·小程序
2401_857610039 小时前
Spring Boot框架:电商系统的技术优势
java·spring boot·后端