版本封存

This commit is contained in:
zeaslity
2025-12-06 11:26:05 +08:00
parent 13949e1ba8
commit c0ae5e30c4
57 changed files with 2443 additions and 1428 deletions

View File

@@ -0,0 +1,150 @@
package wdd_log
import (
"cmii-uav-watchdog-common/utils"
"fmt"
"sync"
)
const (
colorReset = "\033[0m"
colorRed = "\033[31m"
colorGreen = "\033[32m"
colorYellow = "\033[33m"
colorBlue = "\033[34m"
colorPurple = "\033[35m"
colorCyan = "\033[36m"
colorWhite = "\033[37m"
)
type LogLevel int
const (
LevelDebug LogLevel = iota
LevelInfo
LevelWarn
LevelError
LevelFatal
LogPrefix = "cmii-uav-watchdog"
)
var logLevelColors = map[LogLevel]string{
LevelDebug: colorCyan,
LevelInfo: colorGreen,
LevelWarn: colorYellow,
LevelError: colorRed,
LevelFatal: colorPurple,
}
var logLevelNames = map[LogLevel]string{
LevelDebug: "DEBUG",
LevelInfo: "INFO",
LevelWarn: "WARN",
LevelError: "ERROR",
LevelFatal: "FATAL",
}
// Logger 日志单例结构体
type Logger struct {
// EnableDebug 是否启用Debug日志
EnableDebug bool
}
var (
instance *Logger
once sync.Once
)
// GetInstance 获取Logger单例实例
// 返回Logger的单例对象指针
func GetInstance() *Logger {
once.Do(func() {
instance = &Logger{
EnableDebug: false, // 默认不启用Debug日志
}
})
return instance
}
// SetEnableDebug 设置是否启用Debug日志
// enable: true表示启用Debug日志false表示禁用
func (l *Logger) SetEnableDebug(enable bool) {
l.EnableDebug = enable
}
// Log 记录指定级别的日志
// level: 日志级别
// format: 日志格式
// args: 格式化参数
func (l *Logger) Log(level LogLevel, format string, args ...interface{}) {
// Debug级别日志在未启用时不输出
if level == LevelDebug && !l.EnableDebug {
return
}
now := utils.CurentTimeString()
color := logLevelColors[level]
levelName := logLevelNames[level]
message := fmt.Sprintf(format, args...)
fmt.Printf("[%s] %s %s%s%s %s\n", LogPrefix, now, color, levelName, colorReset, message)
}
// Debug 记录Debug级别日志
// format: 日志格式
// args: 格式化参数
func (l *Logger) Debug(format string, args ...interface{}) {
l.Log(LevelDebug, format, args...)
}
// Info 记录Info级别日志
// format: 日志格式
// args: 格式化参数
func (l *Logger) Info(format string, args ...interface{}) {
l.Log(LevelInfo, format, args...)
}
// Warn 记录Warn级别日志
// format: 日志格式
// args: 格式化参数
func (l *Logger) Warn(format string, args ...interface{}) {
l.Log(LevelWarn, format, args...)
}
// Error 记录Error级别日志
// format: 日志格式
// args: 格式化参数
func (l *Logger) Error(format string, args ...interface{}) {
l.Log(LevelError, format, args...)
}
// Fatal 记录Fatal级别日志
// format: 日志格式
// args: 格式化参数
func (l *Logger) Fatal(format string, args ...interface{}) {
l.Log(LevelFatal, format, args...)
}
// 为了兼容原有代码,保留全局函数,但内部调用单例实例
func Log(level LogLevel, format string, args ...interface{}) {
GetInstance().Log(level, format, args...)
}
func Debug(format string, args ...interface{}) {
GetInstance().Debug(format, args...)
}
func Info(format string, args ...interface{}) {
GetInstance().Info(format, args...)
}
func Warn(format string, args ...interface{}) {
GetInstance().Warn(format, args...)
}
func Error(format string, args ...interface{}) {
GetInstance().Error(format, args...)
}
func Fatal(format string, args ...interface{}) {
GetInstance().Fatal(format, args...)
}