donglieshe4692 2013-10-28 23:22
浏览 890
已采纳

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

From log.go (the implementation of the log package) :

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 is just a function wrapper for fmt.Sprintln , why should I use it instead of fmt.Println or fmt.Sprintln ?

Any practical reasons ?

  • 写回答

1条回答 默认 最新

  • dongluedeng1524 2013-10-28 23:27
    关注

    Two things are different:

    1. Printing via package log is safe from concurrent goroutines (while plain fmt isn't)

    2. Log can add timing information automatically.

    So these are two completely different things. log is for logging and fmt for formatting. (Okay, log uses the same verbs and flags, but that is just convenient).

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?