Documentation
¶
Index ¶
- Variables
- func AddHook(hook LogHook)
- func CtxError(msg string, fields ...Field)
- func CtxInfo(msg string, fields ...Field)
- func DPanic(msg string, fields ...Field)
- func Debug(msg string, fields ...Field)
- func Error(msg string, fields ...Field)
- func Fatal(msg string, fields ...Field)
- func Ginzap(logger *zap.Logger, timeFormat string, utc bool) gin.HandlerFunc
- func Info(msg string, fields ...Field)
- func InitAccessLogger(filename, level string, maxSize, maxBackups, maxAge int) *zap.Logger
- func InitLogger(filename, level string, maxSize, maxBackups, maxAge int, debug bool) (err error)
- func LevelToNum(text string) zapcore.Level
- func NewAccessLogger(conf *config.Config) *zap.Logger
- func Panic(msg string, fields ...Field)
- func RecoveryWithZap(stack bool) gin.HandlerFunc
- func RemoveAllHooks()
- func SetLevel(level string) error
- func Sync() error
- func Warn(msg string, fields ...Field)
- type Field
- type Level
- type Log
- type LogConfig
- type LogEntry
- type LogHook
- type Logger
- func (l *Logger) DPanic(msg string, fields ...Field)
- func (l *Logger) Debug(msg string, fields ...Field)
- func (l *Logger) Error(msg string, fields ...Field)
- func (l *Logger) Fatal(msg string, fields ...Field)
- func (l *Logger) Info(msg string, fields ...Field)
- func (l *Logger) Panic(msg string, fields ...Field)
- func (l *Logger) Sync() error
- func (l *Logger) Warn(msg string, fields ...Field)
Constants ¶
This section is empty.
Variables ¶
var ( Skip = zap.Skip Binary = zap.Binary Bool = zap.Bool Boolp = zap.Boolp ByteString = zap.ByteString Complex128 = zap.Complex128 Complex128p = zap.Complex128p Complex64 = zap.Complex64 Complex64p = zap.Complex64p Float64 = zap.Float64 Float64p = zap.Float64p Float32 = zap.Float32 Float32p = zap.Float32p Int = zap.Int Intp = zap.Intp Int64 = zap.Int64 Int64p = zap.Int64p Int32 = zap.Int32 Int32p = zap.Int32p Int16 = zap.Int16 Int16p = zap.Int16p Int8 = zap.Int8 Int8p = zap.Int8p String = zap.String Stringp = zap.Stringp Uint = zap.Uint Uintp = zap.Uintp Uint64 = zap.Uint64 Uint64p = zap.Uint64p Uint32 = zap.Uint32 Uint32p = zap.Uint32p Uint16 = zap.Uint16 Uint16p = zap.Uint16p Uint8 = zap.Uint8 Uint8p = zap.Uint8p Uintptr = zap.Uintptr Uintptrp = zap.Uintptrp Reflect = zap.Reflect Namespace = zap.Namespace Stringer = zap.Stringer Time = zap.Time Timep = zap.Timep Stack = zap.Stack StackSkip = zap.StackSkip Duration = zap.Duration Durationp = zap.Durationp Any = zap.Any )
Functions ¶
func AddHook ¶ added in v0.3.0
func AddHook(hook LogHook)
AddHook 添加全局日志钩子 使用示例:
type MyHook struct {}
func (h *MyHook) Levels() []zapcore.Level {
return []zapcore.Level{zapcore.ErrorLevel, zapcore.FatalLevel}
}
func (h *MyHook) Fire(entry *log.LogEntry) error {
// 发送到飞书、企业微信等
return nil
}
log.AddHook(&MyHook{})
func Ginzap ¶
Ginzap returns a gin.HandlerFunc (middleware) that logs requests using uber-go/zap.
Requests with errors are logged using zap.Error(). Requests without errors are logged using zap.Info().
It receives:
- A time package format string (e.g. time.RFC3339).
- A boolean stating whether to use UTC time zone or local.
func Info ¶
包级日志函数:未初始化时降级为控制台输出,任何时候调用都不会 panic 直接调用底层 zap logger(基础 CallerSkip=1 恰好越过本函数),caller 指向业务代码
func InitAccessLogger ¶
InitAccessLogger 创建 access 日志 logger(独立实例,不修改全局 logger)
func InitLogger ¶
InitLogger 初始化全局 Logger
func LevelToNum ¶
func NewAccessLogger ¶ added in v0.3.0
NewAccessLogger 从配置创建 access 日志 logger(独立实例,不影响全局 logger)
func RecoveryWithZap ¶
func RecoveryWithZap(stack bool) gin.HandlerFunc
RecoveryWithZap returns a gin.HandlerFunc (middleware) that recovers from any panics and logs requests using uber-go/zap. All errors are logged using zap.Error(). stack means whether output the stack info. The stack info is easy to find where the error occurs but the stack info is too large.
Types ¶
type Level ¶
const ( InfoLevel Level = zap.InfoLevel // 0, default level WarnLevel Level = zap.WarnLevel // 1 ErrorLevel Level = zap.ErrorLevel // 2 DPanicLevel Level = zap.DPanicLevel // 3, used in development log // PanicLevel logs a message, then panics PanicLevel Level = zap.PanicLevel // 4 // FatalLevel logs a message, then calls os.Exit(1). FatalLevel Level = zap.FatalLevel // 5 DebugLevel Level = zap.DebugLevel // -1 )
type LogEntry ¶ added in v0.3.0
type LogEntry struct {
Level zapcore.Level // 日志级别
Message string // 日志消息
Fields map[string]any // 日志字段
Timestamp time.Time // 时间戳
TraceID string // 追踪ID(如果存在)
}
LogEntry 日志条目
type LogHook ¶ added in v0.3.0
type LogHook interface {
// Levels 返回该钩子关注的日志级别
Levels() []zapcore.Level
// Fire 当有匹配级别的日志时触发
// 注意:该方法会在独立的goroutine中异步执行,不会阻塞日志记录
Fire(entry *LogEntry) error
}
LogHook 日志钩子接口 业务层可以实现此接口来处理特定级别的日志,例如发送到飞书、企业微信等