【问题标题】:Log4j logs generating inside docker container在 docker 容器内生成的 Log4j 日志
【发布时间】:2019-12-30 06:38:59
【问题描述】:

我已在我的 java 代码中将 log4j 配置为记录器。每当我创建一个 docker 容器时,设置为环境变量的日志路径将在 docker 容器内生成,而不是在指定路径上生成日志文件。

【问题讨论】:

  • 你有什么问题?
  • 这就是 docker 的工作原理。它将在容器本身中生成日志,因为它充当独立机器。您可以做的是使用卷将日志目录挂载到主机文件系统。 docs.docker.com/storage/volumes 如果你有一个 docker compose yml 你可以使用volumes: - ./logs:/home/logs
  • 我想在 docker 命令的指定路径上生成日志.....但是它正在 docker 容器内创建相同的目录......我将发布命令 docker run -e INTERNAL_LOG_PATH=/var/log/gRPC -p 50081:50081 -v /var/log/docker.log/:/var/log/gRPC/ -d service_name /opt/jboss/grpc/runServer.sh

标签: java docker log4j


【解决方案1】:

您可以将 host 文件系统目录挂载到您的 docker 容器,这就是您在主机和容器之间共享数据的方式。 请点击此链接 - https://www.digitalocean.com/community/tutorials/how-to-share-data-between-the-docker-container-and-the-host

【讨论】: