Warum sollte ich melden.Println anstelle von fmt.Println?
Vom log.gehen (die Implementierung der log-Paket) :
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
ist nur eine wrapper-Funktion für fmt.Sprintln
, warum sollte ich es nutzen, anstatt fmt.Println
oder fmt.Sprintln
?
Praktische Gründe ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Dinge sind anders:
Drucken über einen Paket-Protokoll ist sicher, auch aus gleichzeitig goroutines (während plain
fmt
nicht)Protokoll hinzufügen können timing-Informationen automatisch.
Also das sind zwei völlig unterschiedliche Dinge. melden Sie ist für die Protokollierung und
fmt
für die Formatierung. (Okay, das Protokoll verwendet die gleichen Verben und Flaggen, aber das ist einfach bequemer).os.Stderr
durch die Standard. Rufen Sie einfachlog.SetOutput
, um es zu senden alleio.Writer
(das könnte sogar einbytes.Buffer
).log is safe from concurrent goroutines