72 lines
1.7 KiB
Go
72 lines
1.7 KiB
Go
package tool
|
||
|
||
import (
|
||
"fmt"
|
||
"planA/planB/initialization/golabl"
|
||
"planA/planB/modules/logs"
|
||
"sync"
|
||
)
|
||
|
||
// LoggingMiddleware 记录日志
|
||
// 全局计数器,用于控制错误日志打印频率
|
||
var errorLogCounter = 0
|
||
var errorLogMutex sync.Mutex
|
||
|
||
func LoggingMiddleware(level string, str string) {
|
||
m := golabl.LogDll
|
||
initializeLoggerErr := logs.InitializeLogger(m, "logs")
|
||
if initializeLoggerErr != nil {
|
||
fmt.Println("初始化日志失败:", initializeLoggerErr)
|
||
return
|
||
}
|
||
setLogTaskTypeErr := logs.SetLogTaskType(m, "task")
|
||
if setLogTaskTypeErr != nil {
|
||
fmt.Println("设置日志任务类型失败:", setLogTaskTypeErr)
|
||
return
|
||
}
|
||
str = SteLog(str)
|
||
|
||
// 设置打印间隔,例如每100条打印一次
|
||
printInterval := 100 // 可以修改这个数字来调整打印频率
|
||
|
||
switch {
|
||
case level == logs.LOG_LEVEL_ERROR:
|
||
// 控制打印频率
|
||
shouldPrint := false
|
||
errorLogMutex.Lock()
|
||
errorLogCounter++
|
||
if errorLogCounter%printInterval == 0 {
|
||
shouldPrint = true
|
||
}
|
||
errorLogMutex.Unlock()
|
||
|
||
if shouldPrint {
|
||
fmt.Println(str)
|
||
}
|
||
|
||
logErrorErr := logs.LogError(m, str)
|
||
if logErrorErr != nil {
|
||
fmt.Println("记录错误日志失败:", logErrorErr)
|
||
return
|
||
}
|
||
case level == logs.LOG_LEVEL_WARNING:
|
||
logWarningErr := logs.LogWarning(m, str)
|
||
if logWarningErr != nil {
|
||
fmt.Println("记录警告日志失败:", logWarningErr)
|
||
return
|
||
}
|
||
case level == logs.LOG_LEVEL_SUCCESS:
|
||
logSuccessErr := logs.LogSuccess(m, str)
|
||
if logSuccessErr != nil {
|
||
fmt.Println("记录成功日志失败:", logSuccessErr)
|
||
return
|
||
}
|
||
default:
|
||
logInfoErr := logs.LogInfo(m, str)
|
||
if logInfoErr != nil {
|
||
fmt.Println("记录信息日志失败:", logInfoErr)
|
||
return
|
||
}
|
||
}
|
||
}
|