SpringBoot项目在logback-spring.xml中读取application.yml中配置获取不到问题

想通过application.yml中的spring.application.name的配置来设置日志的文件名称

一、问题

在SpringBoot项目,想做链路追踪时,使用logback-spring.xml中配置当前项目名称,读取application.yml中配置的路径,在logback-spring.xml中引用如下:

<!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p [${spring.application.name:-},%X{X-B3-TraceId:-},%X{X-B3-ParentName:-}]}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t|%X{THREAD_ID}]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>


发现application.yml一直读取不到。

二、原因

因为logback-spring.xml的加载要先于application.yml,所以直接通过${参数key}的形式获取是无法获取到application.yml对应参数值的。

具体的执行顺序是:bootstrap.properties > bootstrap.yml > application.properties > application.yml

log文件执行顺序是:logback.xml > logback-spring.xml

三、解决

使用application.properties或者bootstrap.yml配置。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot项目,可以使用logback-spring.xml配置文件来配置日志记录。下面是一个简单的logback-spring.xml配置文件示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/myapp.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>logs/myapp.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <maxFileSize>10MB</maxFileSize> <maxHistory>30</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root> </configuration> ``` 上面的配置文件定义了两个appender:CONSOLE和FILE。CONSOLE appender将日志输出到控制台,FILE appender将日志输出到文件。它们都使用相同的Encoder定义日志格式。 rollingPolicy定义了日志文件的滚动策略。上面的配置文件使用SizeAndTimeBasedRollingPolicy,它将根据文件大小和日期来滚动日志文件。它还定义了日志文件的最大数量和最大大小。 root定义了日志记录的最低级别。在上面的配置文件,它被设置为info,这意味着只有info、warn和error级别的日志消息才会被记录。root还将两个appender(CONSOLE和FILE)附加到它上面,这意味着所有的日志消息都将被发送到这两个appender
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值