De log.go (l’implémentation du package de journal):
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
est juste un wrapper de fonction pour fmt.Sprintln
, pourquoi devrais-je l’utiliser à la place de fmt.Println
ou de fmt.Sprintln
?
Des raisons pratiques?
Deux choses sont différentes:
L’impression via un journal de paquet est à l’abri des goroutines simultanées (quelle que fmt
soit)
Log peut append des informations de synchronisation automatiquement.
Donc, ce sont deux choses complètement différentes. log est pour la journalisation et fmt
pour le formatage. (Ok, log utilise les mêmes verbes et drapeaux, mais cela est pratique).