问题 如何在log4j.properties中使用系统环境变量?


我添加了系统环境值 PROJECT_HOME = C:\ Program Files \ Project

现在我正在尝试使用log4j.properties中的系统环境值,但没有设置它

**log4j.properties**
**log4j.appender.LOGFILE.File="${env.PROJECT_HOME}"/project.log**

你能告诉我如何在log4j.properties中设置系统环境变量吗?

使用log4j-1.2.7版本


6623
2018-03-10 09:24


起源

你的log4j版本是什么?只有log4j 2支持这个?查看文档: logging.apache.org/log4j/2.x/manual/lookups.html - Jayan
是否有理由继续使用1.x版本?版本2应更快,更可靠。 - Leos Literak
对于log4j 1.2.x,请参阅此问题的已接受答案: stackoverflow.com/questions/13066042/... - aff


答案:


这得到了支持 EnvironmentLookup 在log4j中 - 2.参见示例。

使用 ${sys:PROJECT_HOME} 代替 ${env.PROJECT_HOME}


9
2018-03-10 09:29



我试图使用它但不能生成日志文件。 - deepaksharma
你可以再详细一点吗?什么意思“不能生成”?它是否被创造?有一些例外吗?你的项目是什么 - 普通的java / web应用程序? - Leos Literak
@ Leos Literak:您能指出log4j上的相关文档吗?我不知道log4j试图读取环境变量。 - Jayan
@Jayan See logging.apache.org/log4j/2.x/manual/configuration.html,搜索sys:。我的文档很难获得所有信息/语法。你需要在那里寻找它。 - Leos Literak
我已经搜索了一个多小时的答案!很高兴知道版本之间的差异...... - Bartis Áron