Rumah >pembangunan bahagian belakang >Golang >Apakah perpustakaan pembalakan dalam bahasa Go?
Dengan pengembangan berterusan skala sistem perisian, mekanisme pengelogan semakin menjadi bahagian penting dalam pembangunan sistem Dengan merekodkan maklumat terperinci semasa operasi perisian, pembangun dapat memahami dengan lebih baik status berjalan kod tersebut untuk mengesan dan menyelesaikan masalah dalam masa. Bahasa Go, sebagai bahasa pengaturcaraan yang berkuasa dan cekap, juga menyediakan banyak perpustakaan pembalakan yang sangat baik untuk menyokong pembangun.
Artikel ini akan memperkenalkan anda kepada beberapa perpustakaan pengelogan bahasa Go yang biasa digunakan, dan secara ringkas memperkenalkan penggunaan dan ciri-cirinya, saya harap ia dapat membantu anda dengan kerja pengelogan anda.
Pakej log yang disertakan dengan bahasa Go ialah perpustakaan log yang ringkas tetapi berciri penuh dengan kelebihan berikut:
Pengelogan boleh dilakukan dengan mudah dengan memanggil fungsi dalam pakej log. Contohnya:
log.Println("This is a log message.")
Hasil output adalah serupa dengan:
2021/11/11 12:34:56 This is a log message.
Antaranya, masa di hadapan maklumat output dijana secara automatik dan mewakili masa apabila log direkodkan.
zap ialah perpustakaan log berprestasi tinggi yang dibangunkan oleh Uber Ciri utamanya termasuk:
package main import ( "go.uber.org/zap" ) func main() { logger, err := zap.NewProduction() if err != nil { panic(err) } defer logger.Sync() logger.Info("This is a log message.", zap.String("key", "value")) }Dalam contoh ini, pengelog zap dicipta dan sekeping maklumat ditambahkan pada log menggunakan fungsi Maklumat. Parameter kedua zap.String("key", "value") menentukan medan bernama kunci dan menetapkan nilainya kepada nilai. Hasil output adalah serupa dengan:
{"level":"info","ts":1636634174.8175042,"caller":"main.go:9","msg":"This is a log message.","key":"value"}Anda boleh melihat bahawa maklumat log output mengandungi berbilang medan maklumat seperti tahap log, cap masa output dan konteks berjalan program.
tukang kayu
Ia boleh mengehadkan saiz fail log secara automatik untuk mengelakkan fail terlalu besar yang menjejaskan operasi sistem; fail boleh diputar secara tetap mengikut masa dan kaedah lain untuk memudahkan semakan maklumat log sejarah pada masa hadapan; boleh mengelakkan masalah persaingan dalam fail log dalam persekitaran berbilang benang.
package main import ( "github.com/natefinch/lumberjack" "log" ) func main() { logger := &lumberjack.Logger{ Filename: "/var/log/myapp.log", MaxSize: 10, // megabytes MaxBackups: 3, MaxAge: 28, //days } defer logger.Close() log.SetOutput(logger) log.Println("This is a log message.") }
Atas ialah kandungan terperinci Apakah perpustakaan pembalakan dalam bahasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!