golang docker sdk中的ContainerLogs方法查询出来的日志信息只有内容和时间没有显示这个日志是stdout还是stderr如何解决查询
出来的日志信息只有内容和时间,没有显示这个日志是stdout还是stderr的问题?
可以通过在调用ContainerLogs方法时设置参数来解决这个问题。具体来说,可以在调用ContainerLogs方法时,设置一个参数为types.ContainerLogsOptions,然后在这个参数中设置Stdout和Stderr为true,这样就可以同时获取stdout和stderr的日志信息了。示例代码如下:
package main
import (
"context"
"fmt"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
"io"
"os"
)
func main() {
cli, err := client.NewEnvClient()
if err != nil {
panic(err)
}
options := types.ContainerLogsOptions{
ShowStdout: true,
ShowStderr: true,
}
out, err := cli.ContainerLogs(context.Background(), "my-container-id", options)
if err != nil {
panic(err)
}
defer out.Close()
io.Copy(os.Stdout, out)
}
在上面的示例代码中,我们设置了ShowStdout和ShowStderr为true,这样在获取日志信息时就会同时获取stdout和stderr的内容。最后,我们将获取到的日志信息输出到控制台
原文地址: https://www.cveoy.top/t/topic/drWO 著作权归作者所有。请勿转载和采集!