2

i've got an issue with my log4j2.yml configuration file - the following piece of configuration does not work as expected:

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

variable ${baseName} has been declared in the application.properties file:

baseName="d:\dev\dd"

yaml support has been added via the following dependency in the build.gradle file:

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

When I built my project, i had a ${baseName} directory in the project root directory. The value "d:\dev\dd" has not been assigned to the ${baseName} variable for some reasons.

Any ideas how to handle this?

XaHDpE
  • 53
  • 1
  • 6

1 Answers1

1

variable should be set in log4j2.yml as properties.property, like :

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
Feiyu Zhou
  • 4,344
  • 32
  • 36