从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?
log.Println
fmt.Sprintln
fmt.Println
有实际原因吗?
两件事不同:
通过包日志进行打印对于并发goroutine是安全的(而普通的fmt则不是)
fmt
日志可以自动添加计时信息。
因此,这是两件完全不同的事情。log用于记录和fmt格式化。(好吧,log使用相同的动词和标志,但这很方便)。