SpringBoot集成Log4j2

1.简述

  SpringBoot日志系统默认使用的是Logback,灵活性不高,很多时候我们需要使用Log4j或者Log4j2。

2.Log4j2集成说明

(1)添加Log4j2依赖

  使用Log4j2,需要从中去掉spring-boot-starter-web依赖,同时显示声明使用Log4j2的依赖jar包,具体如下

<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>
View Code

(2)Log4j2.xml配置

  resources文件夹下创建log4j2.xml文件,文件内容如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="info">
<Appenders>
    <!--将日志在控制台输出-->
    <Console name="Console" target="SYSTEM_OUT">
        <!--日志输出的格式-->
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n"/>
    </Console>
    <!--将日志输出到文件中,fileName:文件的路径和名称,filePattern:采用某种输出日志的规则,日志的路径名和日志文件名称格式-->
    <RollingFile name="infofile" fileName="logs/info.log" filePattern="logs/info.log.%d{yyyy-MM-dd}">
        <PatternLayout>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
        </PatternLayout>
        <!--过滤日志级别,确保该文件中只能保存INFO和WARN级别的日志-->
        <Filters>
            <ThresholdFilter level="INFO"/>
            <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
        </Filters>
        <!--日志文件产生的策略,每隔一天产生一个新的日志文件-->
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        </Policies>
    </RollingFile>

    <RollingFile name="errorfile" fileName="logs/error.log" filePattern="logs/error.log.%d{yyyy-MM-dd}">
        <PatternLayout>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        </Policies>
    </RollingFile>
</Appenders>
<loggers>
    <Logger name="info" level="INFO">
        <AppenderRef ref="infofile" />
    </Logger>
    <Logger name="error" level="ERROR">
        <AppenderRef ref="errorfile" />
    </Logger>
    <Root>
        <AppenderRef ref="Console"/>
    </Root>
</loggers>
</configuration>
View Code

  自定义文件名的需要在application.[yml、properties]文件中指定配置文件名,示例如下

logging:
  config: classpath:log4j2.xml
View Code
原文地址:https://www.cnblogs.com/bl123/p/14518962.html