Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melaksanakan Pengelogan Tersuai untuk Ralat bersih/http Menggunakan Logger Tersuai?

Bagaimana untuk Melaksanakan Pengelogan Tersuai untuk Ralat bersih/http Menggunakan Logger Tersuai?

Susan Sarandon
Susan Sarandonasal
2024-11-22 17:58:16300semak imbas

How to Implement Custom Logging for net/http Errors Using a Custom Logger?

Log Tersuai untuk Ralat net/http dengan Pelaksanaan Logger Tersuai

Untuk log ralat dari net/http dalam format tersuai, medan ErrorLog struct net/http.Server boleh digunakan. Menyesuaikan logger ini melibatkan menggantikannya dengan pelaksanaan yang mematuhi antara muka io.Writer.

Melaksanakan Logger Tersuai

Dalam contoh yang disediakan, struct AppLogger telah ditentukan untuk ralat log. Untuk menyelaraskan dengan spesifikasi ErrorLog net/http, AppLogger ini boleh diubah suai untuk melaksanakan io.Writer:

type AppLogger struct {
    log *zap.SugaredLogger
}

func (l *AppLogger) Write(p []byte) (n int, err error) {
    l.log.Errorw(string(p))
    return len(p), nil
}

Menyepadukan dengan net/http.Server

Untuk menyepadukan pembalak tersuai dengan net/http.Server, nyatakannya dan serahkannya kepada ErrorLog medan:

server := &http.Server{
    Addr:     addr,
    Handler:  handler,
    ErrorLog: &AppLogger{logger}, // Use the custom AppLogger
}

Menggunakan Zap Logger

Untuk menggunakan Zap logger dengan AppLogger tersuai, langkah berikut boleh diambil:

  1. Buat Zap Logger baharu dengan konfigurasi yang diingini.
  2. Lepaskan Zap Logger ke Contoh AppLogger apabila memulakannya.
  3. Tetapkan medan ErrorLog net/http.Server kepada contoh AppLogger.

Kesimpulan

Dengan melaksanakan pengelog berasaskan io.Writer tersuai seperti AppLogger, ralat daripada net/http boleh dilog masuk format yang selaras dengan strategi pengelogan aplikasi. Ini membolehkan 统一 dan pengelogan ralat fleksibel merentas sistem.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengelogan Tersuai untuk Ralat bersih/http Menggunakan Logger Tersuai?. 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