如何查看Docker容器的实时调试日志

时间:2020-07-12 18:27:34

标签: docker logging

这是用于实时检查Docker容器日志(默认为信息级别)的命令:

.isLast {
  border-bottom: 40px;
  border-width: 7px;
  border-color: #5d3ebc;
  border-style: solid;
  height: 100px;
}

但是,如果我想查看在调试级别登录了代码的实时调试日志怎么办?

2 个答案:

答案 0 :(得分:0)

您可以在前台模式下运行容器,这样您就可以查看日志。

docker run -it --rm my_node_app

-it使容器在前台运行,这样您就可以查看容器日志。

您将能够看到实时日志,就像在终端中运行应用程序一样。

但是,如果我想查看已登录的实时调试日志怎么办 我的代码处于调试级别?

容器输出日志完全取决于stdout/stderr中定义的主进程的CMD

您可以从日志输出中过滤Debug日志,因为docker不知道日志格式,它仅打印stdout/stderr形式的日志。

您可以尝试

docker logs -f container_id | grep "Debug"

如果日志格式包含debug或类似模式。

答案 1 :(得分:0)

这是检查Docker容器日志的命令(信息级别由 默认)直播:

docker logs -f CONTAINER_ID

并非如此,docker logs CONTAINER_ID不能应付冗长的程度。 It simply output the container STDOUT and STDERR

但是,如果我想查看已登录的实时调试日志怎么办 我的代码处于调试级别?

这是一个很好的问题。
您可以静态地(通过配置文件)将记录器附加程序配置为针对所有日志(调试及以上版本)写入stdout。
但作为副作用,它将始终以该级别记录。对于一个简单的测试,它很好,但是对于长时间运行的容器来说,可能会很烦人。
在这种情况下,动态设置记录器级别的方法会更好(基本的休息控制器可能会做得很好)。
这样docker logs -F CONTAINER_ID将根据当前级别输出更多或更少的日志。