2015-09-28 2 views
0

у меня есть проблема с моим файлом конфигурации log4j2.yml - следующий фрагмент конфигурации не работает, как ожидались:Spring YAML динамические переменные подстановки

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"

поддержка YAML была добавлена ​​с помощью следующей зависимости в файле build.gradle:

compile "com.fasterxml.jackson.core:jackson-core" 
compile "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml" 

Когда я построил свой проект, у меня был каталог $ {baseName} в корневом каталоге проекта. По некоторым причинам значение «d: \ dev \ dd» не было присвоено переменной $ {baseName}.

Любые идеи, как справиться с этим?

ответ

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 
Смежные вопросы