Golang ialah bahasa pengaturcaraan cekap yang lebih unggul daripada bahasa lain dalam banyak aspek. Pengelogan adalah tugas kritikal apabila ia datang untuk merekodkan gelagat aplikasi anda. Di Golang, pengelogan adalah penting untuk menyahpepijat dan menguji aplikasi.
Artikel ini akan memperkenalkan kaedah pembalakan di Golang. Kami akan membincangkan pembalak dalam perpustakaan standard serta perpustakaan pihak ketiga.
Perpustakaan standard Golang mempunyai pakej yang dipanggil "log", yang menyediakan cara pengelogan yang mudah. Pakej ini menyediakan tiga peringkat pengelogan: Maklumat, Amaran dan Ralat.
Mula-mula anda perlu mengimport logger:
import "log"
Log maklumat dengan memanggil fungsi "log.Println()" . Ia log mesej ke output ralat standard.
log.Println("Record this info")
Kod ini akan mengeluarkan maklumat yang serupa dengan:
2019/11/22 20:04:14 Record this info
Dengan memanggil "log.Println()" berfungsi untuk mencatat amaran. Ia mencatatkan amaran kepada ralat standard dan menambah "WARN" pada mesej.
log.Println("WARN: Warning message here")
Kod ini akan mengeluarkan mesej yang serupa dengan:
2019/11/22 20:05:20 WARN: Warning message here
Dengan memanggil "log.Println() " berfungsi untuk log ralat. Ia mencatatkan ralat kepada ralat standard dan menambahkan "ERROR" pada mesej.
log.Panicln("ERROR: error message here")
Kod ini akan mengeluarkan maklumat yang serupa dengan yang berikut:
2019/11/22 20:06:28 ERROR: error message here panic: ERROR: error message here goroutine 1 [running]: log.Panicln(0xc42000e170, 0x1, 0x1) /usr/local/go/src/log/log.go:341 +0xc4 main.main() /root/go/src/main.go:10 +0x55 exit status 2
Kod di atas akan menyebabkan atur cara panik. Apabila ralat berlaku, atur cara akan ditamatkan serta-merta selepas mengelog ralat dan mengeluarkan maklumat ralat terperinci.
Fungsi pengelogan yang disediakan oleh perpustakaan standard mempunyai hadnya. Anda boleh menggunakan perpustakaan pihak ketiga untuk melanjutkan keupayaan pengelogan Memandangkan perpustakaan pengelogan pihak ketiga menyediakan ciri yang kaya, ia lebih praktikal untuk penyahpepijatan dan ujian aplikasi.
Di sini kita mengambil perpustakaan kelas "go-logging" sebagai contoh. Ia boleh merekodkan berbilang peringkat log (Maklumat, Amaran, Ralat dan Nyahpepijat).
Mula-mula pasang "go-logging":
go get github.com/op/go-logging
Import perpustakaan:
import ( "github.com/op/go-logging" "os" )
Gunakan fungsi "logging.MustGetLogger()" untuk memulakan logger. Anda boleh menentukan nama sebagai parameter untuk mengenal pasti antara berbilang pembalak.
var log = logging.MustGetLogger("example")
Selepas memulakan pembalak, anda boleh menggunakan fungsi "log.SetLevel()" untuk menetapkan tahap log. Fungsi ini menerima parameter pengelogan jenis. Tahap (termasuk Nyahpepijat, Maklumat, Amaran dan Ralat).
logging.SetLevel(logging.DEBUG, "example")
Buat logger fail dengan menggunakan fungsi "os.Create()":
logFile, err := os.Create("app.log") if err != nil { log.Error("Cannot create log file", err) } defer logFile.Close()
Buat pemformat untuk memformat entri dalam fail log:
formatter := logging.MustStringFormatter( "%{time:2006/01/02 15:04:05.000} %{shortfile} %{level:.6s} %{message}")
Buat pembalak fail melalui fungsi "logging.NewBackendFormatter()":
backend := logging.NewBackendFormatter( logging.NewLogBackend(logFile, "", 0), formatter)
Tambah Sebelum pembalak fail, anda perlu untuk membalut pembalak fail ke bahagian belakang:
logging.SetBackend(backend)
atau tambahkan berbilang pembalak:
logging.SetBackend(logging.MultiLogger( logging.MultiWriter(os.Stdout, logFile), logging.MultiWriter(os.Stderr, logFile), ))
Anda kini boleh " log" maklumat log menggunakan tahap yang dilalui melalui pembalak:
log.Infof("This is a info message with %d", 123) log.Warningf("This is a warning message with %s", "param") log.Errorf("This is a error message with %v", err)
Kod di atas akan memformat log semasa ia dilog dan kemudian menulisnya ke fail log.
Ringkasan:
Pustaka standard Golang menyediakan kaedah pengelogan yang mudah. Walau bagaimanapun, menggunakan pustaka pihak ketiga memberi anda kawalan yang lebih besar ke atas tingkah laku dan format pembalak. Dengan menggunakan pustaka "log", anda boleh log berbilang peringkat log dan menulisnya ke fail.
Atas ialah kandungan terperinci Cara log masuk golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!