java - 我可以在 spring java 应用程序中使用 docker 登录到外部文件吗?

标签 java spring docker

我有一个在 docker 容器中运行的 spring 应用程序,我使用 log4j 进行日志记录。是否可以将日志写入外部文件? (我对 docker 很陌生)

另外,我不想将日志发送到stdout(然后使用docker输出到文件),是否可以通过其他方式解决问题? 如果不可能,我如何配置日志记录级别以便 docker 可以理解它们并输出?

最佳答案

要在 spring 中更改日志文件路径,您可以添加:

logging:
  file: /my/path/file.log

在你的 application.yaml 中

日志文件将在您的容器中创建。如果您希望您的文件可以在您的容器外访问,请在您的 docker 镜像中创建一个卷:https://docs.docker.com/storage/volumes/

例如:

-v /my/real/path/:/my/container/path/

Docker 不知道日志记录级别,但您可以将环境变量放在 application.yaml 中:

logging.level.root: ${LOGGING_LEVEL}

然后使用 -e 将其传递给 docker 镜像:

-e LOGGING_LEVEL=DEBUG

关于java - 我可以在 spring java 应用程序中使用 docker 登录到外部文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56108143/

相关文章:

java - HashMap 是否提供一对一的对应关系?

java - 创建 Optionals 的多维泛型数组

java - 用于验证 InetSocketAddresses(ipv4/v6 + 端口地址)的正则表达式

java - 我是否正确理解 Spring @Transactional 行为?

asp.net - 在Docker容器中安装ASP.Net 3.5

Java简单赋值

java - 方法的参数仅对登录用户可用

java - HttpServletRequest 到 MultipartHttpServletRequest : ClassCastException in Junit

带有外部参数文件的 Dockerfile

docker - Docker Swarm和Windows节点持久存储