【发布时间】:2020-06-05 14:06:27
【问题描述】:
在
{"log":"[2020/02/20-08:50:26,557]-[**INFO** ]-[362]-[testlogger]--4: 202a68dfd8621ee9de1a7ff4\n","stream":"stderr","time":"2020-02-20T08:50:26.55867314Z"}
【问题讨论】:
-
这是您的应用程序或日志设置中的内容,而不是 Docker 本身。你可以通过运行
your application >/dev/null在 Docker 之外看到这一点,这将抑制 stdout 并只向你展示进入 stderr 的内容。 -
谢谢大卫,当我单独运行应用程序时,它会正确显示 INFO 和 WARNING 级别,但是在 docker json-file 日志中它显示为 stream:stderr。那么知道为什么 docker 容器认为这是一个错误吗?因为<Container -d>-json.log是docker自己生成的
-
当你启动一个进程时,有两个不同的地方可以输出,标准输出和标准错误流。这有点像从两个打开的文件开始并能够向其中一个写入消息的过程。 Docker 并不是说“这是一个错误”,而是说“应用程序将其写入标准错误”。演示这种拆分的另一种方法是运行
your application >stdout.log 2>stderr.log。 -
哦!好的,意味着我需要搜索 stdout [ 1 ] 流还重定向 stderr [ 2 ] 的位置。理解。感谢您提供信息。
-
除此之外,我在我的 Spring Boot 示例应用程序中使用了 System.err.println() 和 System.out.println()。两者都显示为 stream:"stdout" 。所以我的问题是,docker 会在哪里配置这些。如果你有想法,谁能告诉我?
标签: docker docker-compose docker-logs