Spring Boot采用yml的方式配置 Log4j2 日志文件

 1、pom文件的依赖配置中,去掉spring boot默认的log配置,引入log4j2依赖包:

<!-- log related -->  
    <dependency> <!-- exclude掉spring-boot的默认log配置 -->  
        <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> <!-- 引入log4j2依赖 -->  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-log4j2</artifactId>  
    </dependency>  
    <dependency>  <!-- 加上这个才能辨认到log4j2.yml文件 -->  
        <groupId>com.fasterxml.jackson.dataformat</groupId>  
        <artifactId>jackson-dataformat-yaml</artifactId>  
    </dependency>  
<!-- end of log related -->     

2、log4j2.yml文件配置(放置在resources文件夹中):

在application.yml中配置读取自定义的yml文件

#日志配置
logging:
  config: classpath:log4j2.yml

log4j2.yml文件的内容

Configuration:
  status: warn

  Properties: # 定义全局变量
    Property: # 缺省配置(用于开发环境)。其他环境需要在VM参数中指定,如下:
    #测试:-Dlog.level.console=warn -Dlog.level.xjj=trace
    #生产:-Dlog.level.console=warn -Dlog.level.xjj=info
    - name: log.level.console
      value: trace
#    - name: log.level.xjj
#      value: trace
    - name: log.path
      #value: /opt/logs
      value: F:\Program Files\IdeaProjects\mgspringboot\src\main\resources\log4j2s
    - name: project.name
      value: my-spring-boot

  Appenders:
    Console:  #输出到控制台
      name: CONSOLE
      target: SYSTEM_OUT
      ThresholdFilter:
        level: ${sys:log.level.console} # “sys:”表示:如果VM参数中没指定这个变量值,则使用本文件中定义的缺省全局变量值
        onMatch: ACCEPT
        onMismatch: DENY
      PatternLayout:
        pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"
    RollingFile: # 输出到文件,超过128MB归档
    - name: ROLLING_FILE
      ignoreExceptions: false
      fileName: ${log.path}/${project.name}.log
      filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
      PatternLayout:
        pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"
      Policies:
        SizeBasedTriggeringPolicy:
          size: "128 MB"
      DefaultRolloverStrategy:
        max: 1000

  Loggers:
    Root:
      # 共有8个级别,按照从低到高为:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF  选择all则输出全部的日志
      level: ALL
      AppenderRef:
      - ref: CONSOLE
      - ref: ROLLING_FILE
#    Logger: # 为com.xjj包配置特殊的Log级别,方便调试
#    - name: com.xjj
#      additivity: false
#      level: ${sys:log.level.xjj}
#      AppenderRef:
#      - ref: CONSOLE
#      - ref: ROLLING_FILE

3、测试用例:

@RunWith(SpringRunner.class)
@SpringBootTest
public class MgspringbootApplicationTests {

    protected final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Test
    public void contextLoads() {
        logger.trace("I am trace log.");
        logger.debug("I am debug log.");
        logger.warn("I am warn log.");
        logger.error("I am error log.");
    }
}

输出

选择为all才会输出四条,但是输出的日志会很多,一般我们选择到info级别,将警告和错误输出,更低级的日志不打印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值