Aplikasi dalam Go, pembalakan dan pemantauan adalah penting untuk kesihatan dan pemerhatian. Amalan terbaik termasuk memilih tahap log berdasarkan kepentingan dan log hanya maklumat yang diperlukan. Gunakan pembalakan berstruktur dan pembalakan berpusat. Sediakan metrik tersuai dan gunakan alat pemantauan seperti Prometheus. Tetapkan peraturan amaran dan sepadukan pengesanan teragih.
Dalam rangka kerja Go, pengelogan dan pemantauan adalah penting untuk kesihatan dan kebolehmerhatian aplikasi. Artikel ini memfokuskan pada isu pengelogan dan pemantauan biasa serta menyediakan amalan terbaik untuk membantu anda menggunakan alatan ini dengan berkesan dalam aplikasi Go anda.
Mengkonfigurasi logrus untuk pembalakan berstruktur
import ( "io" "github.com/sirupsen/logrus" ) func main() { // 创建一个带格式化程序的日志记录器 logger := logrus.New() logger.Formatter = &logrus.JSONFormatter{} // 记录一个结构化日志记录 logger.WithFields(logrus.Fields{ "level": "info", "module": "main", "message": "Application started", }).Info("Application started successfully") // 将日志记录写入文件 f, err := os.OpenFile("mylog.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { panic(err) } defer f.Close() logger.SetOutput(io.MultiWriter(f, os.Stdout)) }
Menggunakan Prometheus untuk mengumpul penunjuk tersuai
import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "net/http" ) var requestCount = prometheus.NewCounter( prometheus.CounterOpts{ Name: "http_requests_total", Help: "HTTP 请求总数", }, ) func main() { // 注册指标 prometheus.MustRegister(requestCount) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // 增加请求计数 requestCount.Inc() // 发送响应 w.Write([]byte("Hello, world!")) }) // 导出指标 http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8080", nil) }
Atas ialah kandungan terperinci Rangka kerja Golang mengelog dan memantau isu biasa dan amalan terbaik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!