installerbuilder/internal/logger/logger.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)
}
}