我正在使用以下log4j2.yaml配置:

Configuration:
 Appenders:
    Console:
      name: Console
      target: SYSTEM_OUT
      JSONLayout:
        compact: true
        eventEol: true
        properties: true
        stacktraceAsString: true
        includeTimeMillis: true
        KeyValuePair:
          - key: appName
            value: ${spring.application.name} 
          - key: version
            value: ${spring.application.version} 
          
 Loggers:
    Root:
      level: INFO
      AppenderRef:
        ref: Console
    Logger:
      - name: org.apache
        level: WARN
        AppenderRef:
          ref: Console
      - name: org.springframework.beans.factory
        level: WARN
        AppenderRef:
          ref: Console

但在原木上,

{"instant":{"epochSecond":1705250772,"nanoOfSecond":209226000},"thread":"main","level":"INFO","loggerName":"com.hyperbank.architecture.base.AbstractHyperBankApplication","message":"Hello, it's me, 'config-provider' !!!","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","contextMap":{},"threadId":1,"threadPriority":5,"appName":"${spring.application.name}","version":"${spring.application.version}"}

属性appName和version不会被实值替换

Banner.txt上有相同的引用,并且显示正确.

  _  _                    ___            _      ___           __ _        ___             _    _         
 | || |_  _ _ __  ___ _ _| _ ) __ _ _ _ | |__  / __|___ _ _  / _(_)__ _  | _ \_ _ _____ _(_)__| |___ _ _ 
 | __ | || | '_ \/ -_) '_| _ \/ _` | ' \| / / | (__/ _ \ ' \|  _| / _` | |  _/ '_/ _ \ V / / _` / -_) '_|
 |_||_|\_, | .__/\___|_| |___/\__,_|_||_|_\_\  \___\___/_||_|_| |_\__, | |_| |_| \___/\_/|_\__,_\___|_|  
       |__/|_|                                                    |___/                                  

Name: config-provider 
Version: 1.0.0
Powered by Spring Boot 3.1.2

推荐答案

您应该使用Spring Boot Lookup:

Configuration:
 Appenders:
    Console:
      name: Console
      target: SYSTEM_OUT
      JSONLayout:
        compact: true
        eventEol: true
        properties: true
        stacktraceAsString: true
        includeTimeMillis: true
        KeyValuePair:
          - key: appName
            value: ${spring:spring.application.name} 
          - key: version
            value: ${spring:spring.application.version} 

并将log4j2.yaml重命名为log4j2-spring.yaml

Java相关问答推荐

我们如何直接使用kerminldap服务票证来通过ldap进行身份验证并形成LDAP上下文

如何在Spring Boot中创建500错误的响应正文?

@从类文件中删除JsonProperty—Java

CAMEL 4中的SAXParseException

路径映射未发生

对运行在GraalVM-21上的JavaFX应用程序使用分代ZGC会警告不支持JVMCI,为什么?

RichFaces 3.x-Spring Boot-迁移web.xml

如何在Java中从XML中获取特定的 node ,然后将其删除?

在Spring Boot中使用哪个Java类来存储创建时间戳?

具有阻塞方法的开源库是否应该为执行提供异步选项?

我如何解释这个错误?必需类型:供应商R,提供:收集器对象,捕获?,java.util.List java.lang.Object>>

如何配置空手道以使用FeignClient或RestTemplate代替ApacheHttpClient

在使用具有不同成本的谓词调用allMatch之前对Java流进行排序会带来什么好处吗?

在一行中检索字符分隔字符串的第n个值

使IntelliJ在导入时优先 Select 一个类或将另一个标记为错误

泛型与泛型问题的完美解决方案?

Java集合:NPE,即使没有添加空值

Java Flux中的延迟增加

如何使用我的RLE程序解决此问题

原始和参数化之间的差异调用orElseGet时可选(供应商)