You need to enable JavaScript to run this app.
导航
容器标准输出与日志级别的关系
最近更新时间:2025.05.28 11:39:19首次发布时间:2025.05.28 11:39:19
我的收藏
有用
有用
无用
无用

容器内应用程序的日志写入路径由其所使用的日志框架配置决定,日志本身的级别(如info、error)与容器的标准输出(stdout)或错误输出(stderr)类型无关。

  • 如果日志框架调用os.Stdout,日志写入容器标准输出(stdout)。
  • 如果日志框架调用os.Stderr,日志写入容器标准错误输出(stderr)。

说明

如果不确定日志框架配置,建议同时采集stdout和stderr。

根据框架配置查看日志写入流路

以Golang应用程序为例:
Logger配置了logger.SetOutput(os.Stderr) ,所以日志(包含info、error级别)均会写入到标准错误输出(stderr)。

logger := logrus.New()
logger.SetOutput(os.Stderr)  # 日志重定向到stderr
logger.SetLevel(logrus.DebugLevel)
logger.Info("Service started")  # 写入stderr
logger.Error("Disk full")  # 写入stderr

根据日志内容查看日志写入流路

以Containerd容器运行时为例:
查看/var/log/pods/<namespace>_<pod-name>_<pod-uid>/<container-name>/0.log日志文件,文件内容中的stderr标识日志写入到标准错误输出(stderr)

2025-05-12T10:39:39.477327246+08:00 stderr F 10.1.0.138 - - [12/May/2025 02:39:39] "GET / HTTP/1.1" 200 -
2025-05-12T10:39:40.23676878+08:00 stderr F 10.1.0.138 - - [12/May/2025 02:39:40] "GET / HTTP/1.1" 200 -
2025-05-12T10:39:49.477228162+08:00 stderr F 10.1.0.138 - - [12/May/2025 02:39:49] "GET / HTTP/1.1" 200 -