Penggunaan log bahasa Go termasuk: 1. Output maklumat teks, seperti menggunakan fungsi "Println()" dalam pakej log untuk mengeluarkan maklumat teks; 2. Output nilai pembolehubah, seperti menggunakan "Printf () dalam pakej log )" fungsi mengeluarkan nilai pembolehubah; 3. Rekod maklumat ralat, seperti menggunakan fungsi "Printf()" dalam pakej log untuk merekod maklumat ralat; 4. Tetapkan awalan log, seperti menggunakan "SetPrefix()" dalam pakej log untuk menetapkan awalan log.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi go1.20, komputer Dell g3.
Bahasa Go ialah bahasa pengaturcaraan yang dibangunkan oleh Google dan digunakan secara meluas dalam pengaturcaraan rangkaian, pengaturcaraan serentak, pengkomputeran awan dan bidang lain. Dalam bahasa Go, menggunakan log untuk merekod ralat, maklumat dan maklumat penyahpepijatan semasa program berjalan adalah bahagian penting. Terdapat banyak perpustakaan log dalam bahasa Go, yang biasa digunakan termasuk log, pkglog, zap, logrus, seelog, dll.
Dalam bahasa Go, pakej log disediakan dalam pustaka standard, yang boleh digunakan untuk merekod maklumat log.
Berikut ialah beberapa kaedah penggunaan biasa:
1 Output maklumat teks
log.Println("hello world")
Hasil pelaksanaan:
2022/01/20 21:06:34 hello world
Output Log. maklumat termasuk masa output dan kandungan maklumat, dan anda boleh menyemak masa dan kandungan setiap output dengan mudah.
2. Keluarkan nilai pembolehubah
a := 10 log.Printf("a的值为:%d", a)
Hasil pelaksanaan:
2022/01/20 21:09:25 a的值为:10
3 Rekod mesej ralat
if err != nil { log.Printf("发生了一个错误:%v", err) }
Hasil pelaksanaan:
2022/01/20 21:10:09 发生了一个错误:open test.txt: no such file or directory
4. Tetapkan awalan log
log.SetPrefix("[prefix]") log.Printf("hello world")
Hasil pelaksanaan:
[prefix]2022/01/20 21:11:21 hello world
Menetapkan awalan log boleh membezakan sumber maklumat log yang berbeza dan memudahkan analisis log masa hadapan.
Sambungan:
Tetapkan tahap log
Apabila mengelog, kadangkala anda hanya perlu merekodkan beberapa maklumat yang lebih penting, tanpa merekod semua maklumat log. Oleh itu, penetapan tahap log adalah sangat diperlukan.
Dalam bahasa Go, pakej log disediakan dalam pustaka standard, tetapi ia tidak menyediakan fungsi untuk menetapkan tahap log. Secara umumnya, kita boleh menyesuaikan pakej log dan melaksanakan fungsi menetapkan tahap log dengan merangkum fungsi dalam pakej log.
Berikut ialah pelaksanaan mudah:
type LogLevel uint8 const ( DEBUG LogLevel = iota + 1 INFO WARN ERROR FATAL ) func Debug(v ...interface{}) { logPrint(DEBUG, v...) } func Info(v ...interface{}) { logPrint(INFO, v...) } func Warn(v ...interface{}) { logPrint(WARN, v...) } func Error(v ...interface{}) { logPrint(ERROR, v...) } func Fatal(v ...interface{}) { logPrint(FATAL, v...) } func logPrint(lv LogLevel, v ...interface{}) { if lv < LogLevel) { return } log.Println(v...) }
Dalam kod di atas, kami mentakrifkan jenis LogLevel untuk mewakili tahap log. Dengan menyesuaikan fungsi Nyahpepijat, Maklumat, Amaran, Ralat dan Fatal, anda boleh mengeluarkan maklumat log apabila tahap log lebih tinggi daripada tahap yang ditetapkan.
Output ke fail
Jika anda mengeluarkan maklumat log terus ke terminal, walaupun ia mudah, ia tidak mudah untuk dilihat. Oleh itu, amalan yang lebih biasa untuk mengeluarkan maklumat log ke fail.
Berikut ialah pelaksanaan mudah:
func logToFile() { file, err := os.Create("log.txt") if err != nil { fmt.Println("创建文件失败:", err) return } defer file.Close() log.SetOutput(file) log.Println("hello world") }
Dalam kod di atas, kami mula-mula mencipta fail bernama log.txt dan mengeluarkan maklumat log ke fail. Dengan menetapkan log.SetOutput(fail), maklumat log boleh dikeluarkan kepada fail.
Ringkasan
Dalam bahasa Go, menggunakan pakej log untuk merekod ralat, maklumat dan maklumat penyahpepijatan semasa program berjalan adalah bahagian penting. Terdapat banyak perpustakaan log dalam bahasa Go, yang biasa digunakan termasuk log, pkglog, zap, logrus, seelog, dll.
Apabila menggunakan pakej log, anda boleh merekodkan pelbagai jenis maklumat log melalui fungsi seperti log.Printf, log.Println, log.SetPrefix, dsb., dan anda boleh menetapkan tahap log dengan menyesuaikan log level. Maklumat log juga boleh dioutputkan ke fail untuk memudahkan tontonan dan analisis
Atas ialah kandungan terperinci Apakah kegunaan bahasa log masuk go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!