patterngoCritical
Why should I use log.Println instead of fmt.Println?
Viewed 0 times
printlnwhyshouldfmtloguseinstead
Problem
From log.go (the implementation of the log package) :
Any practical reasons ?
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 ?
Solution
Two things are different:
-
Printing via package log is safe from concurrent goroutines (while plain
-
Log can add timing information automatically.
So these are two completely different things. log is for logging and
-
Printing via package log is safe from concurrent goroutines (while plain
fmt isn't)-
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).Context
Stack Overflow Q#19646889, score: 204
Revisions (0)
No revisions yet.