Dalam pelajaran ini mengenai pakej Logrus di Golang, kami akan mengkaji pelbagai contoh mengenai seberapa berkesan Logging dapat dilakukan di Go dan melihat betapa pentingnya log dalam bahasa pengaturcaraan Go. Kami akan bermula sekarang.
Bermula dengan Go
Berikut adalah struktur direktori yang saya buat untuk program Hello World:
Inilah program yang kami buat:
pakej utamaimport "fmt"
func utama ()
fmt.Printf ("Helo, dunia.\ n ")
Kita boleh menjalankan program di atas dengan arahan berikut:
pergi lari hello.pergiSebaik sahaja kami menjalankan perintah ini, berikut adalah output yang akan anda lihat:
Sekarang kelihatan baik. Mari beralih ke agenda utama kami.
Pakej Logrus di Golang
Untuk mula menggunakan pakej Logrus dalam program Go, kita mesti dapatkan ia. Jalankan arahan berikut:
pergi dapatkan -t github.com / Sirupsen / logrusApabila kami mula menggunakan pakej ini di IntelliJ, kami melihat ralat ini yang dapat kami atasi dengan satu klik:
Sebaik sahaja anda mendapat bungkusan, kami boleh mula menggunakannya. Mari mulakan dengan program sederhana.
Pembalakan Asas dengan Logrus
Kita akan mulakan dengan contoh pembalakan tahap INFO yang sangat asas. Pembalakan boleh dilakukan dengan mesej String dan meta-data dalam bentuk pasangan nilai-kunci yang muncul sama.
pakej utamamengimport (
log "github.com / Sirupsen / logrus "
)
func utama ()
balak.WithFields (log.Padang
"laman web": "linuxhint.com ",
"hebat": 100,
"pertolongan": 200,
).Maklumat ("Golang pro")
Semasa kita menjalankan program ini, kita dapat melihat output berikut:
Sekarang itu berguna dan berwarna-warni!
Pelbagai Tahap Pembalakan
Sekarang, kami akan mencuba contoh lain yang akan menunjukkan penggunaan pelbagai tahap Pembalakan yang terdapat di Logrus dan secara umum. Mereka adalah:
- Maklumat
- Amaran
- Maut
- Nyahpepijat
- Panik
Mari cuba membina program dan lihat bagaimana tahap log ini berbeza ketika mereka muncul dalam program kami:
pakej utamamengimport (
log "github.com / Sirupsen / logrus "
)
func utama ()
balak.WithFields (log.Padang
"laman web": "linuxhint.com ",
"hebat": 100,
).Maklumat ("Mesej INFO pro Golang")
balak.WithFields (log.Padang
"laman web": "linuxhint.com ",
"hebat": 100,
).Beri amaran ("Mesej WARN pro Golang")
balak.WithFields (log.Padang
"laman web": "linuxhint.com ",
"hebat": 100,
).Fatal ("Mesej FATAL Golang pro")
balak.WithFields (log.Padang
"laman web": "linuxhint.com ",
"hebat": 100,
).Panik ("Mesej PANIC Golang pro")
balak.WithFields (log.Padang
"laman web": "linuxhint.com ",
"hebat": 100,
).Debug ("Mesej DEBUG Golang pro")
Semasa kita menjalankan program ini, kita akan melihat output berikut:
Memerhatikan sesuatu? Pernyataan log selepas pernyataan Fatal bahkan tidak muncul dalam output kami. Ini kerana sebaik sahaja kesalahan Fatal diterima, pelaksanaan program berhenti di Golang.
Mari ubah susunan pernyataan ini dan periksa sama ada beberapa perubahan dalam output juga diperhatikan:
Kali ini, walaupun tahap Panic Log bertindak balas dengan cara yang sama tetapi outputnya sangat berbeza dan terperinci.
Dengan tahap log Panik, anda memastikan bahawa maklumat yang mencukupi mengenai mesin hos juga dicetak dalam output di konsol sehingga kerja tersebut dapat didebug.
Cara yang lebih mudah untuk membuat Log
Dalam panggilan di atas, Log cukup terperinci dan juga metadata. Terdapat cara yang lebih mudah untuk log mesej anda. Mari cuba sekarang:
pakej utamamengimport (
log "github.com / Sirupsen / logrus "
)
func utama ()
balak.Debug ("Data penyahpepijatan di sini.")
balak.Maklumat ("Mesej untuk maklumat biasa")
balak.Peringatkan ("Anda harus melihat amaran ini!")
balak.Ralat ("Sesuatu gagal tetapi program akan diteruskan.")
// Panggilan os.Keluar (1) setelah log
balak.Fatal ("Saya akan pergi.")
// Memanggil panik () setelah log
balak.Panik ("Saya tidak akan dicetak :(")
Berikut adalah output untuk program ini:
Tingkah laku untuk pembalakan adalah sama tetapi kali ini, mereka mudah dibuat hanya dalam satu baris.
Kesimpulannya
Dalam catatan ini, kami mengkaji contoh-contoh yang mudah tetapi berguna mengenai bagaimana kami dapat log mesej penting dengan keparahan dan ketajaman yang berbeza dalam aplikasi kami menggunakan paket Logrus dengan Golang.