Ank*_*hag 42 java log4j environment-variables
我有一个log4j.xml配置文件.和RollingFileAppender我需要它来存储日志提供文件路径.问题是我的代码将作为可运行的jar部署在Unix机器上.所以,如果我传递这样的参数:
value=logs/messages.log"
Run Code Online (Sandbox Code Playgroud)
它在我的HOME目录中创建名为logs的文件夹,并将所有消息写入该目录中的文件.
我有一个环境变量设置为某个值.我想使用该变量的路径并在该路径下写入消息.我怎样才能实现它?
我试过用这个:
value="${MY_HOME}/logs/message.log"
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有谁能建议解决这个问题?
Isa*_*aac 49
解析其配置文件时,表达式${MY_HOME}将扩展为名为system的系统属性的值MY_HOME,而不是系统环境变量.这两者之间存在差异.
要以一种干净的方式实现这一点,您必须向JVM调用行添加类似这样的内容:
-DMY_HOME=$MY_HOME
这将定义Java系统属性MY_HOME以包含环境变量的值MY_HOME.
Dan*_*ada 39
你可以给它环境变量.只需在变量名前加上env:就像这样:
value="${env:MY_HOME}/logs/message.log"
Run Code Online (Sandbox Code Playgroud)
Sho*_*ham 11
此语法仅在log4j 2.X中记录,因此请确保使用的是正确的版本.
<Appenders>
<File name="file" fileName="${env:LOG_PATH}">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m %ex%n</Pattern>
</PatternLayout>
</File>
</Appenders>
Run Code Online (Sandbox Code Playgroud)
http://logging.apache.org/log4j/2.x/manual/lookups.html#EnvironmentLookup
我工作了。
log4j.appender.file.File = $ {LogFilePath}
-DLogFilePath = C:\ work \ MyLogFile.log
| 归档时间: |
|
| 查看次数: |
93108 次 |
| 最近记录: |