我有一个将日志写入文件的应用程序(例如/ var / log / my_app)。
在Docker之前,我使用supervisor启动我的应用程序,使用logrotate.d启动轮换日志。 Logrotate.d为主管运行脚本,以便在日志轮换后重新启动我的应用程序(用于删除旧的日志文件并创建新的日志文件):
supervisor restart my_app
我该如何处理Docker?
据我所知,如果我们使用只有一个正在运行的应用程序的docker容器,我们就不应该使用supervisor(启动和重启会做docker)。那么我怎样才能使用logrotate.d呢?
如果您决定转移到Docker,您还应该调整您的应用程序。在容器中运行的应用程序应将其日志写入控制台(系统输出)。您可以通过在记录器配置中使用CONSOLE appender来实现这一点。完成后,您可以使用以下方法检查容器外部的日志:
docker logs <container_name>
您也可以按照日志(就像使用“tail -f”一样):
docker logs -f <container_name>
您还可以更改容器使用的日志记录驱动程序,并使用日志执行更多花哨的操作。在这里查看更多详情:https://docs.docker.com/config/containers/logging/configure/