spring - Spring Yaml动态变量替换

标签 spring gradle yaml log4j2

我的log4j2.yml配置文件出现问题-以下配置未按预期工作:

  fileName: "${baseName}/logs/${project.build.finalName}.log"
  filePattern: "${baseName}/logs/%d{yyyy-MM-dd}_${project.build.finalName}.log.gz"

变量$ {baseName}已在application.properties文件中声明:
baseName="d:\dev\dd"
通过build.gradle文件中的以下依赖项添加了yaml支持:
compile "com.fasterxml.jackson.core:jackson-core"
compile "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml"

在构建项目时,我在项目根目录中有一个$ {baseName}目录。由于某些原因,未将值“d:\ dev \ dd”分配给$ {baseName}变量。

有什么想法如何处理吗?

最佳答案

变量应在log4j2.yaml中设置为properties.property,例如:

Configuration:
  properties:
    property:
      - name: baseName
        value: /home/shared/log/
      - name: filename
        value: sample.log
      - name: pattern
        value: "%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] [%c] %m%n"
  status: INFO
  Appenders:
    Console:
      name: console
      target: SYSTEM_OUT
      PatternLayout:
      pattern: "${pattern}"
    RollingFile:
      - name: FileAppender
        fileName: "${baseName}${filename}"
        filePattern: "${baseName}${filename}-%d{yyyy-MM-dd}"
        PatternLayout:
        pattern: "${pattern}"
    Policies:
      TimeBasedTriggeringPolicy: {}
  Loggers:
    Root:
      level: INFO
    AppenderRef:
      - ref: console
      - ref: FileAppender

关于spring - Spring Yaml动态变量替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32832051/

相关文章:

android - Gradle:无法解析(mavenCentral)

java - Gradle 在编译任务中使用带有依赖项的 jar

yaml - 是 .yaml 还是 .yml?

amazon-s3 - AWS sam template 如何为S3事件添加多个规则?

java - 在测试中使用 ConfigurationProperties

java - NoSuchBeanDefinitionException : No qualifying bean of type "XInterceptor"

java - Spring中基于自定义注解的方法调用?

java - 如何在java web应用程序中每30分钟调用一次类(class)

java - Noclassdeffounderror - 找不到 v7 支持(android studio)

python - python 列表的 Yaml 转储使用内联格式而不是连字符 + 空格