Golang中写入stderr的简便方法探讨
在Golang中更简便地写入stderr的方法
你可以用几种更直观的方式替代当前的写法:
1. 利用log包的默认输出
log包的Println、Printf等方法默认就是将内容写入os.Stderr,不用手动指定输出流,代码更简洁:
import "log" log.Println("This is an error message")
默认输出会带时间戳前缀,如果不需要这个前缀,可以自定义一个不带前缀的logger:
import ( "log" "os" ) var errLog = log.New(os.Stderr, "", 0) errLog.Println("This is an error message")
2. 封装自己的eprintln函数
如果想完全模仿fmt.Println的使用体验,自己封装一个极简函数即可:
import ( "fmt" "os" ) // eprintln 像fmt.Println一样写入stderr func eprintln(a ...interface{}) { // 大多数场景下写入stderr出错概率极低,可忽略返回值 _, _ = fmt.Fprintln(os.Stderr, a...) } // 调用方式和fmt.Println完全一致 eprintln("This is an error message")
3. 简化原生写法
如果不想额外封装或引入log包,直接忽略fmt.Fprintln的返回值即可(非严格场景下完全可行):
import ( "fmt" "os" ) fmt.Fprintln(os.Stderr, "This is an error message")
内容的提问来源于stack exchange,提问作者Alexander Mills
相关产品推荐
相关产品推荐

