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.Println
または fmt.Sprintln
?
実用的な理由は?
2つのことが異なります。
パッケージログを介した印刷は、同時のゴルーチンから安全です(プレーンfmt
はそうではありません)
ログは、タイミング情報を自動的に追加できます。
したがって、これらは2つのまったく異なるものです。 logはロギング用で、fmt
はフォーマット用です。 (さて、ログは同じ動詞とフラグを使用しますが、それはちょうど便利です)。