日志记录 – 将docker组合日志保存到文件中

我的单元测试运行在我的构建服务器上,并希望捕获日志结果进行分析,当某些失败.我还没有找到一种方法来将docker-compose日志的输出重定向到一个文件,或者找到日志文件本身实际存在的位置.

我想要相当于:

docker-compose logs > logs.txt

编辑 – 澄清:

我的所有Docker容器都生成有用的日志,这是一个手工运行的docker-compose日志显示的日志.我想要脚本化这个过程,将这些相同的日志保存到我的构建服务器上的一个工件文件.基本上,将docker组合的日志的输出保存到一个文件中,然而Docker组成的日志永远不会退出.

最佳答案
默认情况下,docker使用json-file驱动程序记录容器日志,并且可以在以下位置找到日志的raw json输出:

/var/lib/docker/containers/[container-id]/[container-id]-json.log

您可以通过运行以下方式获取此位置:

docker inspect --format='{{.LogPath}}' [container-id or container-name]

当您运行docker-compose logs [service-name]时,docker-compose将附加到您引用的服务(容器),而LogPrinter对象将输出上述文件的内容,但格式化使其更容易阅读.

相关文档:https://docs.docker.com/compose/compose-file/#logging

转载注明原文:日志记录 – 将docker组合日志保存到文件中 - 代码日志