De log.go (l'implémentation du paquet de journaux):
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 au lieu de fmt.Println
ou fmt.Sprintln
?
Des raisons pratiques?
Deux choses sont différentes:
L'impression via le journal de paquetage est à l'abri des goroutines simultanées (alors que plain fmt
ne l'est pas)
Le journal peut ajouter automatiquement des informations de chronométrage.
Ce sont donc deux choses complètement différentes. log est pour la journalisation et fmt
pour le formatage. (D'accord, log utilise les mêmes verbes et drapeaux, mais c'est juste pratique).