135 lines
3.0 KiB
Go
135 lines
3.0 KiB
Go
// 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)
|
|
}
|
|
}
|