Rumah >pembangunan bahagian belakang >Golang >Cara log masuk golang

Cara log masuk golang

PHPz
PHPzasal
2023-04-23 16:35:501159semak imbas

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.

Melog menggunakan perpustakaan standard

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"
  1. Rekod maklumat

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
  1. Log amaran

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
  1. Log ralat

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.

Menggunakan perpustakaan pihak ketiga untuk mengelog

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"
)
  1. Mulakan logger

Gunakan fungsi "logging.MustGetLogger()" untuk memulakan logger. Anda boleh menentukan nama sebagai parameter untuk mengenal pasti antara berbilang pembalak.

var log = logging.MustGetLogger("example")
  1. Tetapkan tahap log

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")
  1. Buat logger fail

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()
  1. Buat Pemformat

Buat pemformat untuk memformat entri dalam fail log:

formatter := logging.MustStringFormatter(
"%{time:2006/01/02 15:04:05.000} %{shortfile} %{level:.6s} %{message}")
  1. Pelog Fail Konfigurasi

Buat pembalak fail melalui fungsi "logging.NewBackendFormatter()":

backend := logging.NewBackendFormatter(
 logging.NewLogBackend(logFile, "", 0),
 formatter)
  1. Tambahkan logger fail pada logger

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),
))
  1. Rekod log

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn