spring boot项目从零开始-(1)集成log4j2

简述

环境

Idea
log4j2

说明

代码:https://gitee.com/ydfind/spring_boot_demo/tree/dev-log/
目录:
在这里插入图片描述

步骤

pom.xml

       <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.1.5.RELEASE</version>
    </parent>

    <dependencies>
        <!-- 添加web starter的依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- log -->
        <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>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

    </dependencies>

application.yml

server:
  port: 8182
  tomcat:
    uri-encoding: UTF-8
logging:
  config: classpath:log4j2.xml

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- status指定log4j本身的日志打印级别 -->
<!-- 配置文件发生修改,在monitorInterval时间即5s内,重新加载,无需重启 -->
<Configuration status="WARN" monitorInterval="5">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout charset="UTF-8" pattern="[%d] [%t] [%-5level] %logger{36} - %msg%n" />
        </Console>

        <RollingFile name="RollingFileInfo" filePermissions="rw-r--r--"
                     fileName="/var/log/springboot/spring-boot-start0.log"
                     filePattern="/var/log/springboot/spring-boot-start0-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="INFO" />
            </Filters>
            <PatternLayout charset="UTF-8" pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n" />
            <Policies>
                <!-- 程序启动时检查;filePattern指定每天会生成新文件;超过100m生成新文件 -->
                <OnStartupTriggeringPolicy/>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100M"/>
            </Policies>
            <DefaultRolloverStrategy>
                <!-- 日志文件仅保留近30天,并且最大5GB -->
                <Delete basePath="/var/log/springboot/" maxDepth="1">
                    <IfFilename glob="spring-boot-start0-*.log">
                        <IfAny>
                            <IfLastModified age="30d"/>
                            <IfAccumulatedFileSize exceeds="5GB"/>
                        </IfAny>
                    </IfFilename>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
        <!--        <CatLog4j2Appender name="Cat" />-->
    </Appenders>

    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="Console" />
            <AppenderRef ref="RollingFileInfo" />
            <!--            <AppenderRef ref="Cat" />-->
        </Root>
        <Logger name="org.mybatis" level="INFO" />
        <Logger name="org.springframework" level="INFO" />
        <Logger name="com.ydfind.start" level="INFO" />
    </Loggers>
</Configuration>

MainApplication.java

package com.ydfind.start;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class MainApplication {

    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }

    @GetMapping("/")
    public String index() {
        return "index";
    }
}

测试

package com.ydfind.start.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class Log4jController {

    @GetMapping("/log")
    public String log() {
        log.trace("log name = " + log.getName());
        log.debug("log name = " + log.getName());
        log.info("log name = " + log.getName());
        log.warn("log name = " + log.getName());
        log.error("log name = " + log.getName());
        log.info("log name = " + log.getName());
        return "success";
    }
}

访问http://localhost:8182/log
结果如下
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值