【问题标题】:Spring yaml dynamic variables substitutionSpring yaml 动态变量替换
【发布时间】:2015-09-28 21:22:46
【问题描述】:

我的 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} 变量。

任何想法如何处理?

【问题讨论】:

标签: spring gradle yaml log4j2


【解决方案1】:

变量应该在log4j2.yml中设置为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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    相关资源
    最近更新 更多