调整工具类的方法,优化方法调用及增加迁移工具及其用法
This commit is contained in:
104
logger/logger.go
104
logger/logger.go
@@ -11,6 +11,23 @@ import (
|
||||
"git.toowon.com/jimmy/go-common/config"
|
||||
)
|
||||
|
||||
var (
|
||||
// defaultLogger 全局默认日志记录器
|
||||
// 用于中间件和其他需要快速日志记录的场景
|
||||
defaultLogger *Logger
|
||||
defaultMux sync.RWMutex
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 初始化默认logger(同步模式,输出到stdout)
|
||||
var err error
|
||||
defaultLogger, err = NewLogger(nil)
|
||||
if err != nil {
|
||||
// 如果初始化失败,使用nil,后续会降级到标准输出
|
||||
defaultLogger = nil
|
||||
}
|
||||
}
|
||||
|
||||
// logMessage 异步日志消息结构
|
||||
type logMessage struct {
|
||||
level string // debug, info, warn, error
|
||||
@@ -357,3 +374,90 @@ func (l *Logger) Close() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ========== 全局默认Logger相关方法 ==========
|
||||
|
||||
// SetDefaultLogger 设置全局默认logger
|
||||
// 用于在应用启动时统一配置logger
|
||||
func SetDefaultLogger(log *Logger) {
|
||||
defaultMux.Lock()
|
||||
defer defaultMux.Unlock()
|
||||
|
||||
// 如果之前有logger,先关闭它
|
||||
if defaultLogger != nil {
|
||||
defaultLogger.Close()
|
||||
}
|
||||
|
||||
defaultLogger = log
|
||||
}
|
||||
|
||||
// GetDefaultLogger 获取全局默认logger
|
||||
func GetDefaultLogger() *Logger {
|
||||
defaultMux.RLock()
|
||||
defer defaultMux.RUnlock()
|
||||
return defaultLogger
|
||||
}
|
||||
|
||||
// Default 全局日志方法 - Debug
|
||||
func Default() *Logger {
|
||||
return GetDefaultLogger()
|
||||
}
|
||||
|
||||
// ========== 全局便捷日志方法 ==========
|
||||
// 以下方法使用全局默认logger,方便快速记录日志
|
||||
|
||||
// Debug 使用全局logger记录调试日志
|
||||
func Debug(format string, v ...interface{}) {
|
||||
if log := GetDefaultLogger(); log != nil {
|
||||
log.Debug(format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Info 使用全局logger记录信息日志
|
||||
func Info(format string, v ...interface{}) {
|
||||
if log := GetDefaultLogger(); log != nil {
|
||||
log.Info(format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Warn 使用全局logger记录警告日志
|
||||
func Warn(format string, v ...interface{}) {
|
||||
if log := GetDefaultLogger(); log != nil {
|
||||
log.Warn(format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Error 使用全局logger记录错误日志
|
||||
func Error(format string, v ...interface{}) {
|
||||
if log := GetDefaultLogger(); log != nil {
|
||||
log.Error(format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Debugf 使用全局logger记录调试日志(带字段)
|
||||
func Debugf(fields map[string]interface{}, format string, v ...interface{}) {
|
||||
if log := GetDefaultLogger(); log != nil {
|
||||
log.Debugf(fields, format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Infof 使用全局logger记录信息日志(带字段)
|
||||
func Infof(fields map[string]interface{}, format string, v ...interface{}) {
|
||||
if log := GetDefaultLogger(); log != nil {
|
||||
log.Infof(fields, format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Warnf 使用全局logger记录警告日志(带字段)
|
||||
func Warnf(fields map[string]interface{}, format string, v ...interface{}) {
|
||||
if log := GetDefaultLogger(); log != nil {
|
||||
log.Warnf(fields, format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Errorf 使用全局logger记录错误日志(带字段)
|
||||
func Errorf(fields map[string]interface{}, format string, v ...interface{}) {
|
||||
if log := GetDefaultLogger(); log != nil {
|
||||
log.Errorf(fields, format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user