Docker + Log4j最佳实践

时间:2019-04-02 08:13:48

标签: java maven docker log4j

我正在构建一个小型Java应用程序,该应用程序通过java -jar myJar.jar入口点命令在open-jdk docker上运行。 我想使用Log4j添加日志记录配置。
这是我应该知道的(?):

1。将log4j.xml保留在单独的源文件夹中,例如src / resource。
2.将log4j.xml保留在docker的JAR文件之外,以允许在运行时进行配置。
3.让JVM知道log4j.xml文件在哪里(可能使用类路径)。

有多种方法可以实现-可以通过jar -jar命令的参数配置log4j.xml位置,可以将其添加到mvn插件中,也可以作为命令添加至Dockerfile中(可能?)。

是否有最佳实践,所有这些配置都应包含在pom.xml / Dockerfile / Docker入口点命令中?

1 个答案:

答案 0 :(得分:0)

根据我的理解,根据Mihai的评论和其他资源,应该构建docker映像以支持在容器午餐时将包括的日志记录配置(例如,使用docker run参数)。这样,映像就足够灵活以支持不同的调试级别。
与非dockerized log4j通常如何工作(或我对它的理解)相反,更改调试级别现在包括使用具有不同运行时配置的同一映像,停止运行中的旧容器并为新的容器进餐。
例如,如果映像名称是dockerTestImage。 我们首先要做类似的事情:
docker run -DebugLevel=INFO dockerTestImage
然后,如果由于某种原因需要更多日志记录日志,我们将停止旧容器并使用docker run -DebugLevel=DEBUG dockerTestImage运行新容器。