gpt4 book ai didi

java - Docker+Log4j最佳实践

转载 作者:太空宇宙 更新时间:2023-11-04 09:45:28 24 4
gpt4 key购买 nike

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

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

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

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

最佳答案

据我了解,根据 Mihai 评论和其他资源,应该构建 docker 镜像来支持日志记录配置,该日志记录配置将在容器启动时包含在内(例如使用 docker run 参数)。这样图像就足够灵活,可以支持不同的调试级别。
与非 Dockerized log4j 通常的工作方式(或我对它的理解)相反 - 更改调试级别现在包括停止旧的正在运行的容器并启动新的容器,使用具有不同运行时配置的相同图像。
例如,如果镜像名称为 dockerTestImage。我们首先会做类似的事情:
docker run -DebugLevel=INFO dockerTestImage
然后,如果我们出于任何原因想要更详细的日志记录,我们将停止旧容器并使用 docker run -DebugLevel=DEBUG dockerTestImage 运行一个新容器。

关于java - Docker+Log4j最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55469908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com