为什么Go自带的日志默认输出到os.Stderr?
阅读原文时间:2023年07月08日阅读:1

为什么Go自带的日志默认输出到os.Stderr? - 知乎 https://www.zhihu.com/question/67629357

Note that the Go runtime writes to standard error for panics and crashes; closing Stderr may cause those messages to go elsewhere, perhaps to a file opened later.

os - The Go Programming Language https://golang.org/pkg/os/

Portable analogs of some common system call errors.

Errors returned from this package may be tested against these errors with errors.Is.

var (
// ErrInvalid indicates an invalid argument.
// Methods on File will return this error when the receiver is nil.
ErrInvalid = errInvalid() // "invalid argument"

ErrPermission       = errPermission()       // "permission denied"  
ErrExist            = errExist()            // "file already exists"  
ErrNotExist         = errNotExist()         // "file does not exist"  
ErrClosed           = errClosed()           // "file already closed"  
ErrNoDeadline       = errNoDeadline()       // "file type does not support deadline"  
ErrDeadlineExceeded = errDeadlineExceeded() // "i/o timeout"  

)

Stdin, Stdout, and Stderr are open Files pointing to the standard input, standard output, and standard error file descriptors.

Note that the Go runtime writes to standard error for panics and crashes; closing Stderr may cause those messages to go elsewhere, perhaps to a file opened later.

var (
Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin")
Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout")
Stderr = NewFile(uintptr(syscall.Stderr), "/dev/stderr")
)

Args hold the command-line arguments, starting with the program name.

var Args []string

proposal: os: Stdin, Stdout and Stderr should be interfaces · Issue #13473 · golang/go https://github.com/golang/go/issues/13473

Replacing os.Stdout/os.Stderr should redirect panic · Issue #325 · golang/go https://github.com/golang/go/issues/325

Capture os.Stdout and/or os.Stderr in Go

go-capturer/main.go at master · zenizh/go-capturer https://github.com/zenizh/go-capturer/blob/master/main.go

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器