温馨提示×

Golang日志中如何统计错误率

小樊
38
2025-11-09 15:48:16
栏目: 编程语言

在Golang中,你可以使用一个结构体来存储错误和成功的计数,然后在每次记录日志时更新这些计数。最后,你可以计算错误率并将其记录到日志中。以下是一个简单的示例:

package main

import (
	"fmt"
	"log"
	"math/rand"
	"time"
)

type Logger struct {
	successCount int
	errorCount   int
}

func (l *Logger) log(message string, isError bool) {
	if isError {
		l.errorCount++
	} else {
		l.successCount++
	}
	log.Printf("%s: %s", message, isError)
}

func (l *Logger) errorRate() float64 {
	total := l.successCount + l.errorCount
	if total == 0 {
		return 0
	}
	return float64(l.errorCount) / float64(total)
}

func main() {
	rand.Seed(time.Now().UnixNano())
	logger := Logger{}

	for i := 0; i < 100; i++ {
		isError := rand.Float32() < 0.2 // 假设有20%的概率发生错误
		logger.log("Operation completed", isError)
	}

	fmt.Printf("Error rate: %.2f%%\n", logger.errorRate()*100)
}

在这个示例中,我们创建了一个名为Logger的结构体,它包含成功和错误的计数。我们还定义了两个方法:log用于记录日志,errorRate用于计算错误率。

main函数中,我们模拟了100次操作,每次操作都有20%的概率发生错误。我们使用Logger实例记录每次操作的日志,并在最后输出错误率。

这个示例仅用于演示目的,你可以根据自己的需求对其进行修改和扩展。

0