在docker容器中旋转ap的日志

问题描述 投票:1回答:1

我有一个将日志写入文件的应用程序(例如/ var / log / my_app)。

在Docker之前,我使用supervisor启动我的应用程序,使用logrotate.d启动轮换日志。 Logrotate.d为主管运行脚本,以便在日志轮换后重新启动我的应用程序(用于删除旧的日志文件并创建新的日志文件):

supervisor restart my_app

我该如何处理Docker?

据我所知,如果我们使用只有一个正在运行的应用程序的docker容器,我们就不应该使用supervisor(启动和重启会做docker)。那么我怎样才能使用logrotate.d呢?

  1. 为log dir创建“volume”并设置logrotate.d以重新启动Docker容器?但我认为这不是一个好主意。
  2. 在我的应用程序中使用Docker容器中的logrotate.d?对于每个Docker镜像,我将安装logrotate.d而不是为主管运行脚本我应该运行脚本来关闭我的应用程序(kill -9或其他东西)。
docker logrotate
1个回答
0
投票

如果您决定转移到Docker,您还应该调整您的应用程序。在容器中运行的应用程序应将其日志写入控制台(系统输出)。您可以通过在记录器配置中使用CONSOLE appender来实现这一点。完成后,您可以使用以下方法检查容器外部的日志:

docker logs <container_name>

您也可以按照日志(就像使用“tail -f”一样):

docker logs -f <container_name>

您还可以更改容器使用的日志记录驱动程序,并使用日志执行更多花哨的操作。在这里查看更多详情:https://docs.docker.com/config/containers/logging/configure/

© www.soinside.com 2019 - 2024. All rights reserved.