我在构建服务器上运行了单元测试,并希望在出现故障时捕获日志结果以进行分析。我还没有找到将 docker-compose logs
的输出重定向到文件的方法,或者找到日志文件本身实际存在的位置。
我想要相当于:
docker-compose logs > logs.txt
编辑 - 澄清:
我所有的 docker 容器都会产生有用的日志,手动运行 docker-compose logs
会显示这些日志。我想编写此过程的脚本,以将这些相同的日志保存到作为我的构建服务器上的工件的文件中。本质上,docker-compose logs
的输出保存到文件中,但是 docker-compose logs
永远不会退出。
最佳答案
默认情况下,docker 使用 json-file
驱动程序来记录您的容器日志,日志的原始 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 object 将输出上述文件的内容,但已格式化,以便于阅读。
关于logging - 将 docker-compose 日志保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35414495/