Từ log.go (việc thực hiện của gói log):Tại sao tôi nên sử dụng log.Println thay vì fmt.Println?
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
chỉ là một wrapper chức năng cho fmt.Sprintln
, tại sao tôi nên sử dụng nó thay vì fmt.Println
hoặc fmt.Sprintln
?
Bất kỳ lý do thực tiễn nào?
Tôi thích Đăng nhập vì dấu thời gian. Nhược điểm của việc sử dụng Log là nó luôn viết cho stderr. – rem7
@ rem7 nó ghi vào 'os.Stderr' theo mặc định *. Chỉ cần gọi ['log.SetOutput'] (https://golang.org/pkg/log/#SetOutput) để gửi nó tới bất kỳ' io.Writer' nào (có thể là một 'byte.Buffer'). –
Xin vui lòng, bạn có thể thêm ví dụ mã cho 'log là an toàn từ đồng thời goroutines' – bsbak