Golang Docker SDK ContainerLogs 方法获取容器日志 stdout/stderr 识别与处理
在使用 Golang Docker SDK 的 ContainerLogs 方法获取容器日志时,可以通过判断日志前缀来确定是标准输出还是标准错误输出。标准输出的前缀是'stdout: ',标准错误输出的前缀是'stderr: '。可以根据这个前缀来判断日志类型。
如果想要在返回的消息体中添加 stdout 或 stderr 字段标识,可以在 Dockerfile 中设置环境变量,然后在容器启动时将 stdout 和 stderr 输出到对应的文件中。例如:
ENV LOG_TYPE=stdout
CMD ["sh", "-c", "if [ '$LOG_TYPE' = 'stdout' ]; then echo 'stdout: This is a message'; else echo 'stderr: This is an error'; fi > /var/log/myapp.log"]
这样,在使用 ContainerLogs 方法获取容器日志时,就可以根据 stdout 或 stderr 字段来判断日志类型了。
原文地址: https://www.cveoy.top/t/topic/kNth 著作权归作者所有。请勿转载和采集!