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

本文介绍了如何在Spring Boot项目中移除默认的日志配置,转而使用Log4j2进行日志管理。详细步骤包括在pom.xml中排除默认的logging依赖并引入Log4j2依赖,以及配置log4j2.yml文件,设置日志输出到控制台和文件,并定义了日志路径、级别和格式。此外,还展示了如何在application.yml中指定Log4j2的配置文件位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件夹中):

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值