从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...)) }
Run Code Online (Sandbox Code Playgroud)
log.Println仅仅是一个功能包装的fmt.Sprintln,我为什么要使用它,而不是fmt.Println或fmt.Sprintln?
任何实际的原因?
Vol*_*ker 84
有两件事是不同的:
通过包日志打印是安全的并发goroutines(平原fmt不是)
日志可以自动添加计时信息.
所以这些是完全不同的两件事.log用于记录和fmt格式化.(好吧,日志使用相同的动词和标志,但这很方便).