Dalam pelajaran tentang paket Logrus di Golang ini, kita akan mempelajari berbagai contoh tentang seberapa efektif Logging dapat dilakukan di Go dan melihat betapa pentingnya log dalam bahasa pemrograman Go. Kita akan mulai sekarang.
Dimulai dengan Go
Berikut adalah struktur direktori yang saya buat untuk program Hello World saya:
Berikut adalah program yang kami buat:
paket utamaimpor "fmt"
fungsi utama()
fmt.Printf("Halo dunia.\n")
Kita dapat menjalankan program di atas dengan perintah berikut:
pergi lari halo.PergilahSetelah kami menjalankan perintah ini, berikut adalah output yang akan Anda lihat:
Sekarang itu terlihat bagus. Mari beralih ke agenda utama kita.
Paket Logrus di Golang
Untuk mulai menggunakan paket Logrus di program Go, kita harus Dapatkan saya t. Jalankan perintah berikut:
dapatkan -t github.com/Sirupsen/logrusKetika kami mulai menggunakan paket ini di IntelliJ, kami melihat kesalahan ini yang dapat kami atasi dalam satu klik:
Setelah Anda mendapatkan paketnya, kami dapat mulai menggunakannya. Mari kita mulai dengan program sederhana.
Pencatatan Dasar dengan Logrus
Kami akan mulai dengan contoh logging level INFO yang sangat mendasar. Logging dapat dilakukan dengan pesan String dan meta-data dalam bentuk pasangan nilai kunci yang tampak sama like.
paket utamaimpor (
log "github.com/Sirupsen/logrus"
)
fungsi utama()
catatan.WithFields(log.Bidang
"situs web": "linuxhint.com",
"luar biasa": 100,
"bantuan": 200,
).Info("Golang pro")
Ketika kita menjalankan program ini, kita dapat melihat output berikut:
Nah, itu berguna dan penuh warna!
Berbagai Level Pencatatan
Sekarang, kita akan mencoba contoh lain yang akan menunjukkan penggunaan berbagai level Logging yang tersedia di Logrus dan secara umum. Mereka:
- Info
- Peringatan
- Fatal
- Debug
- Panik
Mari kita coba membuat program dan melihat perbedaan level log ini saat muncul di program kita:
paket utamaimpor (
log "github.com/Sirupsen/logrus"
)
fungsi utama()
catatan.WithFields(log.Bidang
"situs web": "linuxhint.com",
"luar biasa": 100,
).Info("Pesan INFO Golang pro")
catatan.WithFields(log.Bidang
"situs web": "linuxhint.com",
"luar biasa": 100,
).Warn("Golang pro WARN pesan")
catatan.WithFields(log.Bidang
"situs web": "linuxhint.com",
"luar biasa": 100,
).Fatal("Pesan Golang pro FATAL")
catatan.WithFields(log.Bidang
"situs web": "linuxhint.com",
"luar biasa": 100,
).Panic("Pesan Golang pro PANIK")
catatan.WithFields(log.Bidang
"situs web": "linuxhint.com",
"luar biasa": 100,
).Debug("Pesan GOlang pro DEBUG")
Ketika kita menjalankan program ini, kita akan melihat output berikut:
Melihat sesuatu? Pernyataan log setelah pernyataan Fatal bahkan tidak muncul di output kami. Ini karena begitu kesalahan Fatal diterima, eksekusi program berhenti di Golang.
Mari kita ubah urutan pernyataan ini dan periksa apakah beberapa perubahan dalam output juga diamati:
Kali ini, bahkan level Panic Log bereaksi dengan cara yang sama tetapi outputnya sangat berbeda dan detail.
Dengan tingkat log Panic, Anda memastikan bahwa informasi yang cukup tentang mesin host juga dicetak di output di konsol sehingga pekerjaan dapat di-debug.
Cara yang lebih sederhana untuk membuat Log
Dalam panggilan di atas, Log cukup detail dan dengan metadata juga. Ada cara yang lebih mudah untuk mencatat pesan Anda. Mari kita coba ini sekarang:
paket utamaimpor (
log "github.com/Sirupsen/logrus"
)
fungsi utama()
catatan.Debug("Men-debug data di sini.")
catatan.Info("Pesan untuk info umum")
catatan.Warn("Anda harus melihat peringatan ini!")
catatan.Error("Ada yang gagal tetapi program akan dilanjutkan.")
// Memanggil os.Keluar (1) setelah masuk
catatan.Fatal("Aku pergi.")
// Memanggil panic() setelah login
catatan.Panic("Saya tidak akan dicetak :(")
Berikut adalah output untuk programnya:
Perilaku untuk logging sama tetapi kali ini, mereka mudah dibuat hanya dalam satu baris.
Kesimpulan
Dalam posting ini, kami mempelajari contoh sederhana namun berguna tentang bagaimana kami dapat mencatat pesan penting dengan tingkat keparahan dan verbositas yang berbeda dalam aplikasi kami menggunakan paket Logrus dengan Golang.