英文:
How do I print message to stderr in Go?
问题
我想要打印一些用于调试和测试的日志,但是现有的日志非常庞大,所以我想要将自己的日志打印到标准错误流(stderr)中:
go run main.go 1>/dev/null
这样我就只能看到自己的日志了。
我该如何做到这一点?
英文:
I want to print some logs for debugging and testing, but existing logs are massive, so I want to print my own logs to stderr:
go run main.go 1>/dev/null
So that I can just see my own logs.
How can I do that?
答案1
得分: 29
有多种方法可以将消息发送到stderr
:
-
创建一个新的
log.Logger
:l := log.New(os.Stderr, "", 1) l.Println("log message")
-
使用
fmt.Fprintf
:fmt.Fprintf(os.Stderr, "log message: %s", str)
-
直接使用
os.Stderr.WriteString
将消息写入os.Stderr
:os.Stderr.WriteString("log message")
英文:
There are multiple methods to send a message to stderr
:
-
Creating a new
log.Logger
:l := log.New(os.Stderr, "", 1) l.Println("log message")
-
Using
fmt.Fprintf
:fmt.Fprintf(os.Stderr, "log message: %s", str)
-
Directly writing to
os.Stderr
usingos.Stderr.WriteString
:os.Stderr.WriteString("log message")
答案2
得分: 21
log
包默认情况下会将日志打印到os.Stderr
。
你也可以直接使用os.Stderr
(它是一个os.File
)。
英文:
The log
package by default prints to os.Stderr
.
You can also use os.Stderr
directly (it's an os.File
).
答案3
得分: 0
在Linux系统上,你也可以使用syslog(3)设施。默认情况下,底层的openlog(3)不会输出到stderr,但可以进行更改。
请参考Go包log/syslog。
英文:
On Linux systems, you could also use syslog(3) facilities. By default, the underlying openlog(3) does not go to stderr, but this can be changed.
See Go package log/syslog.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论