三、springBoot 整合日志之log4j2

1. 为什么不是log4j?

springBoot 只有1.3.x和1.3.x以下版本才支持log4j的日志配置,1.3.x以上版本只支持log4j2,logback的日志配置

3. 新建module springboot-log4j2,将base项目中的配置复制来一份

log4j

2. 引入依赖

pom.xml加入log4j2依赖,并同时把spring boot默认的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>

3. 增加配置文件

  • resource目录下增加application.yml,添加如下配置
server:
  port: 8081
  • resource目录下增加文件log4j2.xml
    参考官网配置log4j2,可以看到log4j2支持xmljsonyml,我们这里拿xml举例。具体配置如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <properties>
        <!-- 文件输出格式 -->
        <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
        <Property name="instance">spring-boot-log4j2-log</Property>
        <Property name="log.dir">D:\logs\log4j2</Property>
    </properties>

    <appenders>
        <Console name="CONSOLE" target="system_out">
            <PatternLayout pattern="${PATTERN}"/>
        </Console>

        <File name="File" fileName="${log.dir}/${instance}.log">
            <PatternLayout pattern="${PATTERN}"/>
        </File>
    </appenders>

    <loggers>
        <!-- root logger 配置 -->
        <root level="info">
            <appenderref ref="CONSOLE"/>
            <appenderref ref="File"/>
        </root>
    </loggers>

</configuration>

阅读如上配置,我们发现,我们配置了console和file,把日志信息会以指定的格式输出到控制台和指定目录的一个文件中。如果我们要配置更为复杂的日志文件输出,如按日期、按大小拆分文件,可以参考log4j2官网链接https://logging.apache.org/log4j/2.x/manual/configuration.html

4. 验证

启动项目,控制台输出及文件日志如下截图


控制台日志

文件日志
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。