Log4j配置:如何在yaml配置文件中使用环境变量log4j2.yaml

时间:2017-07-17 13:18:01

标签: java tomcat yaml log4j2

我正在尝试配置在Tomcat上运行的应用程序的日志系统,我希望它在$ CATALINA_HOME / logs下登录而不对路径进行硬编码。 这样做我创建了这个配置文件log4j2.yaml:

Configuration:
  name: Default
  Properties:
    Property:
      name: log-path
      value: "/opt/apache-tomcat-8.5.15/logs"
  Appenders:
    Console:
      name: Console_Appender
      target: SYSTEM_OUT
      PatternLayout:
        pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
    File:
      name: File_Appender
      fileName: ${log-path}/logfile.log
      PatternLayout:
        pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
  Loggers:
    Root:
      level: error
      AppenderRef:
        - ref: Console_Appender
    Logger:
      - name: myname
        level: debug
        AppenderRef:
          - ref: File_Appender

这实际上有效。我想用环境变量CATALINA_HOME替换/opt/apache-tomcat-8.5.15。实现这个的语法是什么?

1 个答案:

答案 0 :(得分:2)

如果您或任何人仍在寻找此

用于设置类似

的env属性
 -DYourSystemProperies=/home/winner

您可以使用

指定此变量
RollingFile:
       - name: RollingFile_Appender
         fileName: ${sys:YourSystemProperies}/abc.log