我的目标是能够根据环境配置日志的位置。例如,在本地计算机上,写入project-dir/logs
。在开发计算机上,写入/var/log/someapp/logs
。
Spring文档说,通过将--logging.path
发送到JVM,可以通过$LOG_PATH
环境变量访问日志记录路径。但是我找不到如何在log4j2.yml中访问此变量。这就是我尝试过的。
Configutation:
name: SomeApp
Properties:
Property:
name: log-path
value: "${LOG_PATH}"
Appenders:
Console:
name: Console_Appender
target: SYSTEM_OUT
PatternLayout:
pattern: "%style{%d{ISO8601}}{white} %highlight{%-5level}[%style{%t}{bright,blue}] %style{%C{1.}}{bright,yellow}: %msg%n%throwable"
File:
- name: Json_File_Appender
fileName: ${log-path}/app.log
JsonLayout:
compact: false
Loggers:
Root:
level: info
AppenderRef:
- ref: Console_Appender
Logger:
- name: me.chris.someapp
level: info
AppenderRef:
- ref: Json_File_Appender
然后我输入
java -jar someapp.jar --logging.path=mylogs
它的作用是在项目目录中创建一个名为${LOG_PATH}
的文件夹。
那我该怎么办?