Skip to content

log

Gói log trong thư viện chuẩn Go thực hiện logging đơn giản.

go
func main() {
   log.Println("log")
   log.Panicln("log panic")
   log.Fatalln("log lỗi")
}

Fatal sẽ gọi os.exit(1) sau khi ghi thông tin log, panic sẽ ném ra panic

Prefix

go
func (l *Logger) Prefix() string //Lấy prefix

func (l *Logger) SetPrefix(prefix string) //Đặt prefix

Ví dụ

go
func main() {
  log.SetPrefix("[main]")
  log.Println("log")
  log.Panicln("log panic")
}

Flag

Phương thức

go
func (l *Logger) Flags() int //Truy cập

func (l *Logger) SetFlags(flag int) //Đặt

Hằng số

go
const (
   Ldate         = 1 << iota     // Ngày
   Ltime                         // Thời gian
   Lmicroseconds                 // Micro giây
   Llongfile                     // Tên tệp đầy đủ
   Lshortfile                    // Tên tệp ngắn
   LUTC                          // Múi giờ
   Lmsgprefix                    // Prefix
   LstdFlags     = Ldate | Ltime // Giá trị ban đầu
)

Ví dụ

go
func main() {
   log.SetFlags(log.Lshortfile | log.Lmicroseconds | log.Lmsgprefix | log.Ldate | log.Ltime)
   log.Println("log")
   log.Panicln("log panic")
}

Tất nhiên cũng có thể sử dụng log.SetOutput(w io.Writer) để đặt đường dẫn xuất log, cũng có thể tạo instance của riêng mình thông qua phương thức New.

go
func New(out io.Writer, prefix string, flag int) *Logger

Tóm lại, gói log trong thư viện chuẩn cung cấp chức năng chưa đầy đủ, chúng ta thường sử dụng các gói log bên thứ ba hoàn thiện hơn, ví dụ zap v.v.

Golang by www.golangdev.cn edit