// Package logger 提供日志记录功能 package logger import ( "io" "os" "github.com/sirupsen/logrus" ) // Logger 是应用程序的日志记录器 var Logger = logrus.New() // 日志级别常量 const ( DebugLevel = logrus.DebugLevel InfoLevel = logrus.InfoLevel WarnLevel = logrus.WarnLevel ErrorLevel = logrus.ErrorLevel FatalLevel = logrus.FatalLevel PanicLevel = logrus.PanicLevel ) // 初始化日志记录器 func init() { // 设置默认输出为标准输出 Logger.SetOutput(os.Stdout) // 设置默认格式为文本格式 Logger.SetFormatter(&logrus.TextFormatter{ FullTimestamp: true, TimestampFormat: "2006-01-02 15:04:05", }) // 设置默认日志级别为信息级别 Logger.SetLevel(logrus.InfoLevel) } // SetLevel 设置日志级别 func SetLevel(level logrus.Level) { Logger.SetLevel(level) } // SetOutput 设置日志输出目标 func SetOutput(output io.Writer) { Logger.SetOutput(output) } // SetFormatter 设置日志格式化器 func SetFormatter(formatter logrus.Formatter) { Logger.SetFormatter(formatter) } // Debug 记录调试级别的日志 func Debug(args ...interface{}) { Logger.Debug(args...) } // Debugf 记录格式化的调试级别日志 func Debugf(format string, args ...interface{}) { Logger.Debugf(format, args...) } // Info 记录信息级别的日志 func Info(args ...interface{}) { Logger.Info(args...) } // Infof 记录格式化的信息级别日志 func Infof(format string, args ...interface{}) { Logger.Infof(format, args...) } // Warn 记录警告级别的日志 func Warn(args ...interface{}) { Logger.Warn(args...) } // Warnf 记录格式化的警告级别日志 func Warnf(format string, args ...interface{}) { Logger.Warnf(format, args...) } // Error 记录错误级别的日志 func Error(args ...interface{}) { Logger.Error(args...) } // Errorf 记录格式化的错误级别日志 func Errorf(format string, args ...interface{}) { Logger.Errorf(format, args...) } // Fatal 记录致命级别的日志,然后退出程序 func Fatal(args ...interface{}) { Logger.Fatal(args...) } // Fatalf 记录格式化的致命级别日志,然后退出程序 func Fatalf(format string, args ...interface{}) { Logger.Fatalf(format, args...) } // Panic 记录恐慌级别的日志,然后触发恐慌 func Panic(args ...interface{}) { Logger.Panic(args...) } // Panicf 记录格式化的恐慌级别日志,然后触发恐慌 func Panicf(format string, args ...interface{}) { Logger.Panicf(format, args...) } // WithField 返回带有指定字段的日志条目 func WithField(key string, value interface{}) *logrus.Entry { return Logger.WithField(key, value) } // WithFields 返回带有指定字段的日志条目 func WithFields(fields logrus.Fields) *logrus.Entry { return Logger.WithFields(fields) } // ConfigureLogger 根据命令行标志配置日志记录器 func ConfigureLogger(verbose bool, quiet bool) { if verbose { SetLevel(DebugLevel) Debug("已启用详细日志模式") } else if quiet { SetLevel(ErrorLevel) } else { SetLevel(InfoLevel) } }