如何在log4j2中使用docker传递的环境variables?
我有一个基于spring-boot的应用程序,在dockerized环境中使用log4j2.xml
。
当我启动泊坞窗时,我传递了-e "LOG4J_PATH=/tmp/app.log"
来指定日志应该到达的位置。
接下来,在log4j2.xml
我使用fileName="${env:LOG4J_PATH}"
但这不起作用。 我search了几个小时的networking,因此尝试了双$并尝试sys
而不是env
…什么都没有。
这个System.getenv("LOG4J_PATH")
和(new EnvironmentLookup()).lookup("LOG4J_PATH")
工作正常,所以我知道该variables正在传递给正在运行的图像确定,但由于某种原因,log4j不似乎捡起来了。
如果我不通过docker运行这个,并在我的.bash_profile
设置LOG4J_PATH
环境variables,它工作正常,所以这是LOG4J_PATH
和log4j之间的东西。
我究竟做错了什么?
我相信你需要为你传递的环境variables稍微改变一下键值结构。 你能试一下吗
docker run -e LOG4J_PATH='/tmp/app.log'