Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Melaksanakan Pembalakan Tersuai untuk Ralat bersih/http Menggunakan Zap?
Pengelogan Tersuai untuk net/http dengan Zap
Ralat pengelogan daripada net/http dalam format tersuai memerlukan pelaksanaan mekanisme pengelogan anda sendiri. Pakej net/http menyediakan struct Pelayan yang termasuk medan ErrorLog, membolehkan anda menentukan pengelog tersuai.
Melaksanakan Logger Tersuai
Untuk menggantikan pembalak lalai , buat pelaksanaan tersuai:
type AppLogger struct { log *zap.SugaredLogger } func (l *AppLogger) Error(message string, keyAndValues ...interface{}) { l.log.Errorw(message, keyAndValues...) }
Menyepadukan dengan net/http
Buat jenis yang melaksanakan io.Writer dan wakilkan kepada logger tersuai anda:
type serverJsonWriter struct { *zap.Logger } func (w serverJsonWriter) Write(p []byte) (n int, err error) { w.Error(string(p)) return len(p), nil }
Akhir sekali, nyatakan http.Server baharu dan tetapkan medan ErrorLog kepada penulis tersuai anda:
server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: logger.New(&serverJsonWriter{l}, "", 0), }
di mana saya adalah pengecat zap anda contoh.
Mendapatkan semula zap io.Writer
Anda boleh mendapatkan zap io.Writer dengan memanggil logger.Writer() pada contoh logger:
zapWriter := logger.Writer()
Tambahan Nota
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pembalakan Tersuai untuk Ralat bersih/http Menggunakan Zap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!