容器内应用程序的日志写入路径由其所使用的日志框架配置决定,日志本身的级别(如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 -