一尘不染

为什么我应该使用log.Println而不是fmt.Println?

go

log.go(执行日志包):

167 // Println calls l.Output to print to the logger.
168 // Arguments are handled in the manner of fmt.Println.
169 func (l *Logger) Println(v ...interface{}) { l.Output(2, fmt.Sprintln(v...)) }

log.Println只是一个函数包装器fmt.Sprintln,为什么我应该用它代替fmt.Printlnor
fmt.Sprintln

有实际原因吗?


阅读 400

收藏
2020-07-02

共1个答案

一尘不染

两件事不同:

  1. 通过包日志进行打印对于并发goroutine是安全的(而普通的fmt则不是)

  2. 日志可以自动添加计时信息。

因此,这是两件完全不同的事情。log用于记录和fmt格式化。(好吧,log使用相同的动词和标志,但这很方便)。

2020-07-02