Documentation
¶
Overview ¶
* @Author: kamalyes 501893067@qq.com * @Date: 2025-12-19 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-19 22:59:30 * @FilePath: \go-logger\console.go * @Description: JavaScript console 风格的日志分组和表格功能 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-08 02:07:30 * @FilePath: \go-logger\context.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-09-18 11:15:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-19 23:27:35 * @FilePath: \go-logger\empty.go * @Description: 空日志实现,用于禁用日志输出的场景 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-09 16:00:00 * @FilePath: \go-logger\interfaces.go * @Description: 日志接口定义 - 增强版本,支持多种日志框架的参数格式 * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-22 12:33:32 * @FilePath: \go-logger\level.go * @Description: 统一的日志级别定义和管理 * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-09 09:42:37 * @FilePath: \go-logger\logger.go * @Description: 统一的日志工具包,支持 emoji 和结构化日志 * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2026-02-02 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2026-02-02 00:00:00 * @FilePath: \go-logger\output.go * @Description: 输出类型和配置 * * Copyright (c) 2026 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-12-19 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-19 23:52:45 * @FilePath: \go-logger\timer.go * @Description: 计时器功能,类似 JavaScript console.time() * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-08 02:07:30 * @FilePath: \go-logger\types.go * @Description: 核心类型定义 * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-07 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-07 23:19:49 * @FilePath: \go-logger\writer.go * @Description: 日志输出器实现 * * Copyright (c) 2024 by kamalyes, All Rights Reserved.
Index ¶
- Constants
- Variables
- func CleanupExpiredTimers(maxAge time.Duration) int
- func DefaultContextKeys() []compiledContextKey
- func GetActiveTimersCount() int
- func GetAllCategories() []string
- func GetAllLevelNames() []string
- func GetLevelNames() []string
- func GetLevelShortNames() []string
- func IsEmptyLogger(logger ILogger) bool
- func SetGlobalLevel(level LogLevel)
- func SetGlobalShowCaller(show bool)
- func SetTimerCleanupInterval(interval time.Duration)
- func SetTimerMaxAge(maxAge time.Duration)
- type BufferedWriter
- func (w *BufferedWriter) Close() error
- func (w *BufferedWriter) Flush() error
- func (w *BufferedWriter) GetStats() WriterStatsSnapshot
- func (w *BufferedWriter) IsHealthy() bool
- func (w *BufferedWriter) Write(p []byte) (n int, err error)
- func (w *BufferedWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
- type BufferedWriterOption
- type CallerInfo
- type ConsoleGroup
- func (cg *ConsoleGroup) Debug(format string, args ...interface{})
- func (cg *ConsoleGroup) DebugContext(ctx context.Context, format string, args ...interface{})
- func (cg *ConsoleGroup) Error(format string, args ...interface{})
- func (cg *ConsoleGroup) ErrorContext(ctx context.Context, format string, args ...interface{})
- func (cg *ConsoleGroup) Group(label string, args ...interface{})
- func (cg *ConsoleGroup) GroupCollapsed(label string, args ...interface{})
- func (cg *ConsoleGroup) GroupEnd()
- func (cg *ConsoleGroup) Info(format string, args ...interface{})
- func (cg *ConsoleGroup) InfoContext(ctx context.Context, format string, args ...interface{})
- func (cg *ConsoleGroup) Log(level LogLevel, format string, args ...interface{})
- func (cg *ConsoleGroup) Table(data interface{})
- func (cg *ConsoleGroup) Time(label string) *Timer
- func (cg *ConsoleGroup) Warn(format string, args ...interface{})
- func (cg *ConsoleGroup) WarnContext(ctx context.Context, format string, args ...interface{})
- type ConsoleTable
- type ConsoleWriterOption
- type ContextExtractor
- type EmptyAdapter
- func (e *EmptyAdapter) Close() error
- func (e *EmptyAdapter) Flush() error
- func (e *EmptyAdapter) GetAdapterName() string
- func (e *EmptyAdapter) GetAdapterVersion() string
- func (e *EmptyAdapter) Initialize() error
- func (e *EmptyAdapter) IsHealthy() bool
- func (e *EmptyAdapter) SetHealthy(healthy bool)
- type EmptyHook
- type EmptyLogger
- func (e *EmptyLogger) Clone() ILogger
- func (e *EmptyLogger) ConsoleGroup(label string, args ...interface{})
- func (e *EmptyLogger) ConsoleGroupCollapsed(label string, args ...interface{})
- func (e *EmptyLogger) ConsoleGroupEnd()
- func (e *EmptyLogger) ConsoleTable(data interface{})
- func (e *EmptyLogger) ConsoleTime(label string) *Timer
- func (e *EmptyLogger) Debug(format string, args ...interface{})
- func (e *EmptyLogger) DebugContext(ctx context.Context, format string, args ...interface{})
- func (e *EmptyLogger) DebugContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) DebugCtxReturn(ctx context.Context, format string, args ...interface{}) error
- func (e *EmptyLogger) DebugKV(msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) DebugKVReturn(msg string, keysAndValues ...interface{}) error
- func (e *EmptyLogger) DebugLines(lines ...string)
- func (e *EmptyLogger) DebugMsg(msg string)
- func (e *EmptyLogger) DebugReturn(format string, args ...interface{}) error
- func (e *EmptyLogger) DebugWithFields(msg string, fields map[string]interface{})
- func (e *EmptyLogger) Debugf(format string, args ...interface{})
- func (e *EmptyLogger) Error(format string, args ...interface{})
- func (e *EmptyLogger) ErrorContext(ctx context.Context, format string, args ...interface{})
- func (e *EmptyLogger) ErrorContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) ErrorCtxReturn(ctx context.Context, format string, args ...interface{}) error
- func (e *EmptyLogger) ErrorKV(msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) ErrorKVReturn(msg string, keysAndValues ...interface{}) error
- func (e *EmptyLogger) ErrorLines(lines ...string)
- func (e *EmptyLogger) ErrorMsg(msg string)
- func (e *EmptyLogger) ErrorReturn(format string, args ...interface{}) error
- func (e *EmptyLogger) ErrorWithFields(msg string, fields map[string]interface{})
- func (e *EmptyLogger) Errorf(format string, args ...interface{})
- func (e *EmptyLogger) Fatal(format string, args ...interface{})
- func (e *EmptyLogger) FatalContext(ctx context.Context, format string, args ...interface{})
- func (e *EmptyLogger) FatalContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) FatalKV(msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) FatalMsg(msg string)
- func (e *EmptyLogger) FatalWithFields(msg string, fields map[string]interface{})
- func (e *EmptyLogger) Fatalf(format string, args ...interface{})
- func (e *EmptyLogger) GetLevel() LogLevel
- func (e *EmptyLogger) GetStats() *LoggerStats
- func (e *EmptyLogger) Info(format string, args ...interface{})
- func (e *EmptyLogger) InfoContext(ctx context.Context, format string, args ...interface{})
- func (e *EmptyLogger) InfoContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) InfoCtxReturn(ctx context.Context, format string, args ...interface{}) error
- func (e *EmptyLogger) InfoKV(msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) InfoKVReturn(msg string, keysAndValues ...interface{}) error
- func (e *EmptyLogger) InfoLines(lines ...string)
- func (e *EmptyLogger) InfoMsg(msg string)
- func (e *EmptyLogger) InfoReturn(format string, args ...interface{}) error
- func (e *EmptyLogger) InfoWithFields(msg string, fields map[string]interface{})
- func (e *EmptyLogger) Infof(format string, args ...interface{})
- func (e *EmptyLogger) IsLevelEnabled(level LogLevel) bool
- func (e *EmptyLogger) IsShowCaller() bool
- func (e *EmptyLogger) Log(level LogLevel, msg string)
- func (e *EmptyLogger) LogContext(ctx context.Context, level LogLevel, msg string)
- func (e *EmptyLogger) LogKV(level LogLevel, msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) LogWithFields(level LogLevel, msg string, fields map[string]interface{})
- func (e *EmptyLogger) NewConsoleGroup() *ConsoleGroup
- func (e *EmptyLogger) Print(args ...interface{})
- func (e *EmptyLogger) Printf(format string, args ...interface{})
- func (e *EmptyLogger) Println(args ...interface{})
- func (e *EmptyLogger) SetLevel(level LogLevel)
- func (e *EmptyLogger) SetShowCaller(show bool)
- func (e *EmptyLogger) Warn(format string, args ...interface{})
- func (e *EmptyLogger) WarnContext(ctx context.Context, format string, args ...interface{})
- func (e *EmptyLogger) WarnContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) WarnCtxReturn(ctx context.Context, format string, args ...interface{}) error
- func (e *EmptyLogger) WarnKV(msg string, keysAndValues ...interface{})
- func (e *EmptyLogger) WarnKVReturn(msg string, keysAndValues ...interface{}) error
- func (e *EmptyLogger) WarnLines(lines ...string)
- func (e *EmptyLogger) WarnMsg(msg string)
- func (e *EmptyLogger) WarnReturn(format string, args ...interface{}) error
- func (e *EmptyLogger) WarnWithFields(msg string, fields map[string]interface{})
- func (e *EmptyLogger) Warnf(format string, args ...interface{})
- func (e *EmptyLogger) WithContext(ctx context.Context) ILogger
- func (e *EmptyLogger) WithError(err error) ILogger
- func (e *EmptyLogger) WithField(key string, value interface{}) ILogger
- func (e *EmptyLogger) WithFields(fields map[string]interface{}) ILogger
- type EmptyWriter
- type FileLogWriter
- func (w *FileLogWriter) Close() error
- func (w *FileLogWriter) Flush() error
- func (w *FileLogWriter) GetStats() WriterStatsSnapshot
- func (w *FileLogWriter) IsHealthy() bool
- func (w *FileLogWriter) Write(p []byte) (n int, err error)
- func (w *FileLogWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
- type FileWriterOption
- type FormatType
- type IAdapter
- type IAdvancedLogger
- type IFileWriter
- type IFormatter
- type IFrameworkAdapter
- type IHook
- type ILogBuilder
- type ILogger
- type ILogrusLogger
- type IManager
- type IMiddleware
- type ISlogLogger
- type IWriter
- func CreateWriter(config *WriterConfig) (IWriter, error)
- func NewBufferedWriter(opts ...BufferedWriterOption) IWriter
- func NewConsoleWriter(opts ...ConsoleWriterOption) IWriter
- func NewFileWriter(opts ...FileWriterOption) IWriter
- func NewMultiWriter(opts ...MultiWriterOption) IWriter
- func NewRotateWriter(opts ...RotateWriterOption) IWriter
- type IZapLogger
- type IZerologLogger
- type LevelInfo
- type LogArgs
- type LogEntry
- type LogLevel
- func (l LogLevel) Category() string
- func (l LogLevel) Color() string
- func (l LogLevel) Description() string
- func (l LogLevel) Emoji() string
- func (l LogLevel) Info() LevelInfo
- func (l LogLevel) IsApplication() bool
- func (l LogLevel) IsBasic() bool
- func (l LogLevel) IsBusiness() bool
- func (l LogLevel) IsEnabled(target LogLevel) bool
- func (l LogLevel) IsPerformance() bool
- func (l LogLevel) IsSecurity() bool
- func (l LogLevel) IsSystem() bool
- func (l LogLevel) IsValid() bool
- func (l LogLevel) MarshalText() ([]byte, error)
- func (l LogLevel) Priority() int
- func (l LogLevel) ShortString() string
- func (l LogLevel) String() string
- func (l *LogLevel) UnmarshalText(text []byte) error
- func (l *LogLevel) UnmarshalYAML(unmarshal func(interface{}) error) error
- type Logger
- func (l *Logger) Audit(action, user, resource, result string)
- func (l *Logger) Cache(format string, args ...any)
- func (l *Logger) Clone() ILogger
- func (l *Logger) ConfigLog(format string, args ...any)
- func (l *Logger) ConsoleGroup(label string, args ...any)
- func (l *Logger) ConsoleGroupCollapsed(label string, args ...any)
- func (l *Logger) ConsoleGroupEnd()
- func (l *Logger) ConsoleTable(data any)
- func (l *Logger) ConsoleTime(label string) *Timer
- func (l *Logger) Database(format string, args ...any)
- func (l *Logger) Debug(format string, args ...any)
- func (l *Logger) DebugContext(ctx context.Context, format string, args ...any)
- func (l *Logger) DebugContextKV(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) DebugCtxReturn(ctx context.Context, format string, args ...any) error
- func (l *Logger) DebugKV(msg string, keysAndValues ...any)
- func (l *Logger) DebugKVReturn(msg string, keysAndValues ...any) error
- func (l *Logger) DebugLines(lines ...string)
- func (l *Logger) DebugMsg(msg string)
- func (l *Logger) DebugReturn(format string, args ...any) error
- func (l *Logger) DebugWithFields(msg string, fields map[string]any)
- func (l *Logger) Debugf(format string, args ...any)
- func (l *Logger) Environment(format string, args ...any)
- func (l *Logger) Error(format string, args ...any)
- func (l *Logger) ErrorContext(ctx context.Context, format string, args ...any)
- func (l *Logger) ErrorContextKV(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) ErrorCtxReturn(ctx context.Context, format string, args ...any) error
- func (l *Logger) ErrorKV(msg string, keysAndValues ...any)
- func (l *Logger) ErrorKVReturn(msg string, keysAndValues ...any) error
- func (l *Logger) ErrorLines(lines ...string)
- func (l *Logger) ErrorMsg(msg string)
- func (l *Logger) ErrorReturn(format string, args ...any) error
- func (l *Logger) ErrorWithFields(msg string, fields map[string]any)
- func (l *Logger) Errorf(format string, args ...any)
- func (l *Logger) Fatal(format string, args ...any)
- func (l *Logger) FatalContext(ctx context.Context, format string, args ...any)
- func (l *Logger) FatalContextKV(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) FatalKV(msg string, keysAndValues ...any)
- func (l *Logger) FatalMsg(msg string)
- func (l *Logger) FatalWithFields(msg string, fields map[string]any)
- func (l *Logger) Fatalf(format string, args ...any)
- func (l *Logger) GetContextExtractor() ContextExtractor
- func (l *Logger) GetLevel() LogLevel
- func (l *Logger) Health(service string, status bool, details string)
- func (l *Logger) Info(format string, args ...any)
- func (l *Logger) InfoContext(ctx context.Context, format string, args ...any)
- func (l *Logger) InfoContextKV(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) InfoCtxReturn(ctx context.Context, format string, args ...any) error
- func (l *Logger) InfoKV(msg string, keysAndValues ...any)
- func (l *Logger) InfoKVReturn(msg string, keysAndValues ...any) error
- func (l *Logger) InfoLines(lines ...string)
- func (l *Logger) InfoMsg(msg string)
- func (l *Logger) InfoReturn(format string, args ...any) error
- func (l *Logger) InfoWithFields(msg string, fields map[string]any)
- func (l *Logger) Infof(format string, args ...any)
- func (l *Logger) IsLevelEnabled(level LogLevel) bool
- func (l *Logger) IsShowCaller() bool
- func (l *Logger) Loading(format string, args ...any)
- func (l *Logger) Log(level LogLevel, msg string)
- func (l *Logger) LogContext(ctx context.Context, level LogLevel, msg string)
- func (l *Logger) LogKV(level LogLevel, msg string, keysAndValues ...any)
- func (l *Logger) LogWithFields(level LogLevel, msg string, fields map[string]any)
- func (l *Logger) Milestone(message string)
- func (l *Logger) Network(format string, args ...any)
- func (l *Logger) NewConsoleGroup() *ConsoleGroup
- func (l *Logger) Performance(operation string, duration time.Duration, details ...map[string]any)
- func (l *Logger) Print(args ...any)
- func (l *Logger) Printf(format string, args ...any)
- func (l *Logger) Println(args ...any)
- func (l *Logger) Progress(current, total int, operation string)
- func (l *Logger) Security(format string, args ...any)
- func (l *Logger) SetContextExtractor(extractor ContextExtractor)
- func (l *Logger) SetLevel(level LogLevel)
- func (l *Logger) SetShowCaller(show bool)
- func (l *Logger) Start(format string, args ...any)
- func (l *Logger) StartTiming(operation string) *Timing
- func (l *Logger) Stop(format string, args ...any)
- func (l *Logger) Success(format string, args ...any)
- func (l *Logger) Warn(format string, args ...any)
- func (l *Logger) WarnContext(ctx context.Context, format string, args ...any)
- func (l *Logger) WarnContextKV(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) WarnCtxReturn(ctx context.Context, format string, args ...any) error
- func (l *Logger) WarnKV(msg string, keysAndValues ...any)
- func (l *Logger) WarnKVReturn(msg string, keysAndValues ...any) error
- func (l *Logger) WarnLines(lines ...string)
- func (l *Logger) WarnMsg(msg string)
- func (l *Logger) WarnReturn(format string, args ...any) error
- func (l *Logger) WarnWithFields(msg string, fields map[string]any)
- func (l *Logger) Warnf(format string, args ...any)
- func (l *Logger) WithAsyncWrite(async bool) *Logger
- func (l *Logger) WithBatchSize(size int) *Logger
- func (l *Logger) WithBatchTimeout(timeout time.Duration) *Logger
- func (l *Logger) WithBufferSize(size int) *Logger
- func (l *Logger) WithCallerDepth(depth int) *Logger
- func (l *Logger) WithCallerKey(key string) *Logger
- func (l *Logger) WithColorful(colorful bool) *Logger
- func (l *Logger) WithContext(ctx context.Context) ILogger
- func (l *Logger) WithContextExtractor(extractor ContextExtractor) *Logger
- func (l *Logger) WithContextKeys(keys ...string) *Logger
- func (l *Logger) WithError(err error) ILogger
- func (l *Logger) WithField(key string, value any) ILogger
- func (l *Logger) WithFields(fields map[string]any) ILogger
- func (l *Logger) WithFormat(format FormatType) *Logger
- func (l *Logger) WithFormatter(formatter IFormatter) *Logger
- func (l *Logger) WithHooks(hooks []IHook) *Logger
- func (l *Logger) WithLevel(level LogLevel) *Logger
- func (l *Logger) WithLevelKey(key string) *Logger
- func (l *Logger) WithMessageKey(key string) *Logger
- func (l *Logger) WithMiddleware(middleware []IMiddleware) *Logger
- func (l *Logger) WithOutput(output io.Writer) *Logger
- func (l *Logger) WithPrefix(prefix string) *Logger
- func (l *Logger) WithShowCaller(show bool) *Logger
- func (l *Logger) WithShowStacktrace(show bool) *Logger
- func (l *Logger) WithStacktraceKey(key string) *Logger
- func (l *Logger) WithTimeFormat(format string) *Logger
- func (l *Logger) WithTimestampKey(key string) *Logger
- func (l *Logger) WithWriters(writers []IWriter) *Logger
- type LoggerStats
- type MultiLogWriter
- func (w *MultiLogWriter) Close() error
- func (w *MultiLogWriter) Flush() error
- func (w *MultiLogWriter) GetStats() WriterStatsSnapshot
- func (w *MultiLogWriter) IsHealthy() bool
- func (w *MultiLogWriter) Write(p []byte) (n int, err error)
- func (w *MultiLogWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
- type MultiWriterOption
- type OutputType
- type PerformanceLevel
- type RotateLogWriter
- func (w *RotateLogWriter) Close() error
- func (w *RotateLogWriter) Flush() error
- func (w *RotateLogWriter) GetStats() WriterStatsSnapshot
- func (w *RotateLogWriter) IsHealthy() bool
- func (w *RotateLogWriter) Write(p []byte) (n int, err error)
- func (w *RotateLogWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
- type RotateWriterOption
- func WithCompress(compress bool) RotateWriterOption
- func WithFilePath(filePath string) RotateWriterOption
- func WithMaxAge(maxAge time.Duration) RotateWriterOption
- func WithMaxFiles(maxFiles int) RotateWriterOption
- func WithMaxSize(maxSize int64) RotateWriterOption
- func WithRotateBufferSize(size int) RotateWriterOption
- func WithRotateLevel(level LogLevel) RotateWriterOption
- func WithRotatePermission(permission os.FileMode) RotateWriterOption
- type SpecialLogType
- type Timer
- type Timing
- type WriterConfig
- type WriterStatsSnapshot
Constants ¶
const ( ColorBlack = "\033[30m" ColorRed = "\033[31m" ColorGreen = "\033[32m" ColorYellow = "\033[33m" ColorBlue = "\033[34m" ColorMagenta = "\033[35m" ColorCyan = "\033[36m" ColorWhite = "\033[37m" ColorGray = "\033[90m" // 亮色版本 ColorBrightRed = "\033[91m" ColorBrightGreen = "\033[92m" ColorBrightYellow = "\033[93m" ColorBrightBlue = "\033[94m" ColorBrightMagenta = "\033[95m" ColorBrightCyan = "\033[96m" ColorBrightWhite = "\033[97m" )
预定义颜色常量
const ( DefaultMaxSize = 100 * 1024 * 1024 // 默认最大文件大小 100MB DefaultMaxFiles = 5 // 默认最大文件数 DefaultFilePermission = 0644 // 默认文件权限 DefaultDirPermission = 0755 // 默认目录权限 DefaultMaxAge = 30 * 24 * time.Hour // 默认最大保留时间 30天 DefaultBufferSize = 4096 // 默认缓冲区大小 4KB )
默认配置常量
const ( ErrMsgFilePathEmpty = "file_path is required for file output" ErrMsgRotatePathEmpty = "file_path is required for rotate output" )
错误消息常量
const ColorReset = "\033[0m"
ColorReset 颜色重置代码
const ContextKeyTraceID = "trace_id"
ContextKeyTraceID 是 traceId 在日志输出的字段名,同时作为 ctx.Value 的 fallback key traceId 的唯一真相源是 OTel span(gRPC 的 otelgrpc StatsHandler / HTTP 的 Tracing 中间件创建) extract 优先从 OTel span 提取;当 ctx 不在 span 内时,fallback 到 ctx.Value("trace_id")
Variables ¶
var ( SuccessType = SpecialLogType{"✅", "SUCCESS"} LoadingType = SpecialLogType{"⏳", "LOADING"} ConfigType = SpecialLogType{"⚙️", "CONFIG"} StartType = SpecialLogType{"🚀", "START"} StopType = SpecialLogType{"🛑", "STOP"} DatabaseType = SpecialLogType{"💾", "DATABASE"} NetworkType = SpecialLogType{"🌐", "NETWORK"} SecurityType = SpecialLogType{"🔒", "SECURITY"} CacheType = SpecialLogType{"🗄️", "CACHE"} EnvironmentType = SpecialLogType{"🌍", "ENV"} )
特殊日志类型定义
Functions ¶
func CleanupExpiredTimers ¶ added in v0.4.6
CleanupExpiredTimers 手动清理超过指定时间未结束的计时器
func DefaultContextKeys ¶ added in v0.4.6
func DefaultContextKeys() []compiledContextKey
DefaultContextKeys 返回默认上下文提取 key
func GetActiveTimersCount ¶ added in v0.4.6
func GetActiveTimersCount() int
GetActiveTimersCount 获取当前活跃的计时器数量
func GetAllLevelNames ¶ added in v0.4.0
func GetAllLevelNames() []string
GetAllLevelNames 获取所有级别名称(包括扩展级别)
func GetLevelShortNames ¶ added in v0.4.0
func GetLevelShortNames() []string
GetLevelShortNames 获取所有级别短名称
func SetTimerCleanupInterval ¶ added in v0.4.6
SetTimerCleanupInterval 设置清理间隔(可选配置,立即生效,触发 cleanup goroutine 重建 ticker)
func SetTimerMaxAge ¶ added in v0.4.6
SetTimerMaxAge 设置计时器最大存活时间(可选配置,热更新,线程安全)
Types ¶
type BufferedWriter ¶
type BufferedWriter struct {
// contains filtered or unexported fields
}
BufferedWriter 缓冲输出器(为底层输出器添加可配置的缓冲层)
func (*BufferedWriter) GetStats ¶
func (w *BufferedWriter) GetStats() WriterStatsSnapshot
GetStats 获取统计信息
func (*BufferedWriter) Write ¶
func (w *BufferedWriter) Write(p []byte) (n int, err error)
Write 实现io.Writer接口
func (*BufferedWriter) WriteLevel ¶
func (w *BufferedWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
WriteLevel 按级别写入
type BufferedWriterOption ¶ added in v0.4.6
type BufferedWriterOption func(*BufferedWriter)
BufferedWriterOption 缓冲输出器配置选项
func WithBufferSize ¶ added in v0.4.6
func WithBufferSize(bufferSize int) BufferedWriterOption
WithBufferSize 设置缓冲区大小
func WithBufferedLevel ¶ added in v0.4.6
func WithBufferedLevel(level LogLevel) BufferedWriterOption
WithBufferedLevel 设置日志级别
func WithBufferedUnderlying ¶ added in v0.4.6
func WithBufferedUnderlying(underlying IWriter) BufferedWriterOption
WithBufferedUnderlying 设置底层输出器
type CallerInfo ¶
type CallerInfo struct {
File string `json:"file"`
Line int `json:"line"`
Function string `json:"function"`
}
CallerInfo 调用者信息
type ConsoleGroup ¶ added in v0.4.6
type ConsoleGroup struct {
// contains filtered or unexported fields
}
ConsoleGroup 控制台分组 所有输出直接写入 output(默认 os.Stdout),不走 logger 的 JSON/文本格式化 这样启动横幅、表格等控制台展示内容不会污染 JSON 日志流
func NewConsoleGroup ¶ added in v0.5.4
func NewConsoleGroup() *ConsoleGroup
NewConsoleGroup 创建新的控制台分组(包级函数,输出到 os.Stdout)
func (*ConsoleGroup) Debug ¶ added in v0.4.6
func (cg *ConsoleGroup) Debug(format string, args ...interface{})
Debug 在分组中记录 Debug 级别日志
func (*ConsoleGroup) DebugContext ¶ added in v0.4.6
func (cg *ConsoleGroup) DebugContext(ctx context.Context, format string, args ...interface{})
DebugContext 在分组中记录带上下文的 Debug 级别日志
func (*ConsoleGroup) Error ¶ added in v0.4.6
func (cg *ConsoleGroup) Error(format string, args ...interface{})
Error 在分组中记录 Error 级别日志
func (*ConsoleGroup) ErrorContext ¶ added in v0.4.6
func (cg *ConsoleGroup) ErrorContext(ctx context.Context, format string, args ...interface{})
ErrorContext 在分组中记录带上下文的 Error 级别日志
func (*ConsoleGroup) Group ¶ added in v0.4.6
func (cg *ConsoleGroup) Group(label string, args ...interface{})
Group 开始一个新的日志分组 类似 JavaScript console.group()
func (*ConsoleGroup) GroupCollapsed ¶ added in v0.4.6
func (cg *ConsoleGroup) GroupCollapsed(label string, args ...interface{})
GroupCollapsed 开始一个折叠的日志分组 类似 JavaScript console.groupCollapsed() 在折叠状态下,该分组内的日志将不会输出(除非日志级别为 ERROR 或 FATAL)
func (*ConsoleGroup) GroupEnd ¶ added in v0.4.6
func (cg *ConsoleGroup) GroupEnd()
GroupEnd 结束当前分组 类似 JavaScript console.groupEnd()
func (*ConsoleGroup) Info ¶ added in v0.4.6
func (cg *ConsoleGroup) Info(format string, args ...interface{})
Info 在分组中记录 Info 级别日志
func (*ConsoleGroup) InfoContext ¶ added in v0.4.6
func (cg *ConsoleGroup) InfoContext(ctx context.Context, format string, args ...interface{})
InfoContext 在分组中记录带上下文的 Info 级别日志
func (*ConsoleGroup) Log ¶ added in v0.4.6
func (cg *ConsoleGroup) Log(level LogLevel, format string, args ...interface{})
Log 在当前分组中记录日志
func (*ConsoleGroup) Table ¶ added in v0.4.6
func (cg *ConsoleGroup) Table(data interface{})
Table 在分组中显示表格 类似 JavaScript console.table()
func (*ConsoleGroup) Time ¶ added in v0.4.6
func (cg *ConsoleGroup) Time(label string) *Timer
Time 开始计时 类似 JavaScript console.time()
func (*ConsoleGroup) Warn ¶ added in v0.4.6
func (cg *ConsoleGroup) Warn(format string, args ...interface{})
Warn 在分组中记录 Warn 级别日志
func (*ConsoleGroup) WarnContext ¶ added in v0.4.6
func (cg *ConsoleGroup) WarnContext(ctx context.Context, format string, args ...interface{})
WarnContext 在分组中记录带上下文的 Warn 级别日志
type ConsoleTable ¶ added in v0.4.6
ConsoleTable 表格数据结构
type ConsoleWriterOption ¶ added in v0.4.6
type ConsoleWriterOption func(*consoleLogWriter)
ConsoleWriterOption 控制台输出器配置选项
func WithConsoleColor ¶ added in v0.4.6
func WithConsoleColor(color bool) ConsoleWriterOption
WithConsoleColor 设置是否启用颜色
func WithConsoleLevel ¶ added in v0.4.6
func WithConsoleLevel(level LogLevel) ConsoleWriterOption
WithConsoleLevel 设置日志级别
func WithConsoleOutput ¶ added in v0.4.6
func WithConsoleOutput(output io.Writer) ConsoleWriterOption
WithConsoleOutput 设置输出目标
type ContextExtractor ¶ added in v0.4.1
ContextExtractor 上下文信息提取器函数类型
type EmptyAdapter ¶
type EmptyAdapter struct {
*EmptyLogger
// contains filtered or unexported fields
}
EmptyAdapter 是 IAdapter 接口的空实现
func (*EmptyAdapter) GetAdapterName ¶
func (e *EmptyAdapter) GetAdapterName() string
GetAdapterName 获取适配器名称
func (*EmptyAdapter) GetAdapterVersion ¶
func (e *EmptyAdapter) GetAdapterVersion() string
GetAdapterVersion 获取适配器版本
func (*EmptyAdapter) SetHealthy ¶
func (e *EmptyAdapter) SetHealthy(healthy bool)
SetHealthy 设置适配器健康状态
type EmptyHook ¶
type EmptyHook struct {
// contains filtered or unexported fields
}
EmptyHook 是 IHook 接口的空实现
type EmptyLogger ¶
type EmptyLogger struct {
// contains filtered or unexported fields
}
EmptyLogger 是 ILogger 接口的空实现,所有方法都不执行任何操作 常用于测试环境或需要禁用日志输出的场景
func NewEmptyLoggerWithLevel ¶
func NewEmptyLoggerWithLevel(level LogLevel) *EmptyLogger
NewEmptyLoggerWithLevel 创建一个指定级别的空日志实例
func (*EmptyLogger) ConsoleGroup ¶ added in v0.4.6
func (e *EmptyLogger) ConsoleGroup(label string, args ...interface{})
ConsoleGroup 空实现 - 开始分组(不执行任何操作)
func (*EmptyLogger) ConsoleGroupCollapsed ¶ added in v0.4.6
func (e *EmptyLogger) ConsoleGroupCollapsed(label string, args ...interface{})
ConsoleGroupCollapsed 空实现 - 开始折叠分组(不执行任何操作)
func (*EmptyLogger) ConsoleGroupEnd ¶ added in v0.4.6
func (e *EmptyLogger) ConsoleGroupEnd()
ConsoleGroupEnd 空实现 - 结束分组(不执行任何操作)
func (*EmptyLogger) ConsoleTable ¶ added in v0.4.6
func (e *EmptyLogger) ConsoleTable(data interface{})
ConsoleTable 空实现 - 显示表格(不执行任何操作)
func (*EmptyLogger) ConsoleTime ¶ added in v0.4.6
func (e *EmptyLogger) ConsoleTime(label string) *Timer
ConsoleTime 空实现 - 开始计时(返回空的计时器)
func (*EmptyLogger) Debug ¶
func (e *EmptyLogger) Debug(format string, args ...interface{})
基本日志方法 - 所有方法都是空实现
func (*EmptyLogger) DebugContext ¶
func (e *EmptyLogger) DebugContext(ctx context.Context, format string, args ...interface{})
带上下文的日志方法
func (*EmptyLogger) DebugContextKV ¶ added in v0.4.3
func (e *EmptyLogger) DebugContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
带上下文的结构化日志方法
func (*EmptyLogger) DebugCtxReturn ¶ added in v0.4.6
func (e *EmptyLogger) DebugCtxReturn(ctx context.Context, format string, args ...interface{}) error
返回错误的上下文日志方法
func (*EmptyLogger) DebugKV ¶
func (e *EmptyLogger) DebugKV(msg string, keysAndValues ...interface{})
结构化日志方法(键值对)
func (*EmptyLogger) DebugKVReturn ¶ added in v0.4.6
func (e *EmptyLogger) DebugKVReturn(msg string, keysAndValues ...interface{}) error
返回错误的键值对日志方法
func (*EmptyLogger) DebugLines ¶ added in v0.4.2
func (e *EmptyLogger) DebugLines(lines ...string)
func (*EmptyLogger) DebugReturn ¶ added in v0.4.6
func (e *EmptyLogger) DebugReturn(format string, args ...interface{}) error
返回错误的日志方法
func (*EmptyLogger) DebugWithFields ¶ added in v0.4.6
func (e *EmptyLogger) DebugWithFields(msg string, fields map[string]interface{})
字段映射方法(直接支持 map[string]interface{})
func (*EmptyLogger) Debugf ¶ added in v0.3.0
func (e *EmptyLogger) Debugf(format string, args ...interface{})
Printf风格方法(与上面相同,但命名更明确)
func (*EmptyLogger) Error ¶
func (e *EmptyLogger) Error(format string, args ...interface{})
func (*EmptyLogger) ErrorContext ¶
func (e *EmptyLogger) ErrorContext(ctx context.Context, format string, args ...interface{})
func (*EmptyLogger) ErrorContextKV ¶ added in v0.4.3
func (e *EmptyLogger) ErrorContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
func (*EmptyLogger) ErrorCtxReturn ¶ added in v0.4.6
func (e *EmptyLogger) ErrorCtxReturn(ctx context.Context, format string, args ...interface{}) error
func (*EmptyLogger) ErrorKV ¶
func (e *EmptyLogger) ErrorKV(msg string, keysAndValues ...interface{})
func (*EmptyLogger) ErrorKVReturn ¶ added in v0.4.6
func (e *EmptyLogger) ErrorKVReturn(msg string, keysAndValues ...interface{}) error
func (*EmptyLogger) ErrorLines ¶ added in v0.4.2
func (e *EmptyLogger) ErrorLines(lines ...string)
func (*EmptyLogger) ErrorMsg ¶
func (e *EmptyLogger) ErrorMsg(msg string)
func (*EmptyLogger) ErrorReturn ¶ added in v0.4.6
func (e *EmptyLogger) ErrorReturn(format string, args ...interface{}) error
func (*EmptyLogger) ErrorWithFields ¶ added in v0.4.6
func (e *EmptyLogger) ErrorWithFields(msg string, fields map[string]interface{})
func (*EmptyLogger) Errorf ¶ added in v0.3.0
func (e *EmptyLogger) Errorf(format string, args ...interface{})
func (*EmptyLogger) Fatal ¶
func (e *EmptyLogger) Fatal(format string, args ...interface{})
func (*EmptyLogger) FatalContext ¶
func (e *EmptyLogger) FatalContext(ctx context.Context, format string, args ...interface{})
func (*EmptyLogger) FatalContextKV ¶ added in v0.4.3
func (e *EmptyLogger) FatalContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
func (*EmptyLogger) FatalKV ¶
func (e *EmptyLogger) FatalKV(msg string, keysAndValues ...interface{})
func (*EmptyLogger) FatalMsg ¶
func (e *EmptyLogger) FatalMsg(msg string)
func (*EmptyLogger) FatalWithFields ¶ added in v0.4.6
func (e *EmptyLogger) FatalWithFields(msg string, fields map[string]interface{})
func (*EmptyLogger) Fatalf ¶ added in v0.3.0
func (e *EmptyLogger) Fatalf(format string, args ...interface{})
func (*EmptyLogger) GetLevel ¶
func (e *EmptyLogger) GetLevel() LogLevel
func (*EmptyLogger) Info ¶
func (e *EmptyLogger) Info(format string, args ...interface{})
func (*EmptyLogger) InfoContext ¶
func (e *EmptyLogger) InfoContext(ctx context.Context, format string, args ...interface{})
func (*EmptyLogger) InfoContextKV ¶ added in v0.4.3
func (e *EmptyLogger) InfoContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
func (*EmptyLogger) InfoCtxReturn ¶ added in v0.4.6
func (e *EmptyLogger) InfoCtxReturn(ctx context.Context, format string, args ...interface{}) error
func (*EmptyLogger) InfoKV ¶
func (e *EmptyLogger) InfoKV(msg string, keysAndValues ...interface{})
func (*EmptyLogger) InfoKVReturn ¶ added in v0.4.6
func (e *EmptyLogger) InfoKVReturn(msg string, keysAndValues ...interface{}) error
func (*EmptyLogger) InfoLines ¶ added in v0.4.2
func (e *EmptyLogger) InfoLines(lines ...string)
多行日志方法
func (*EmptyLogger) InfoMsg ¶
func (e *EmptyLogger) InfoMsg(msg string)
func (*EmptyLogger) InfoReturn ¶ added in v0.4.6
func (e *EmptyLogger) InfoReturn(format string, args ...interface{}) error
func (*EmptyLogger) InfoWithFields ¶ added in v0.4.6
func (e *EmptyLogger) InfoWithFields(msg string, fields map[string]interface{})
func (*EmptyLogger) Infof ¶ added in v0.3.0
func (e *EmptyLogger) Infof(format string, args ...interface{})
func (*EmptyLogger) IsLevelEnabled ¶
func (e *EmptyLogger) IsLevelEnabled(level LogLevel) bool
func (*EmptyLogger) IsShowCaller ¶
func (e *EmptyLogger) IsShowCaller() bool
func (*EmptyLogger) LogContext ¶
func (e *EmptyLogger) LogContext(ctx context.Context, level LogLevel, msg string)
func (*EmptyLogger) LogKV ¶
func (e *EmptyLogger) LogKV(level LogLevel, msg string, keysAndValues ...interface{})
func (*EmptyLogger) LogWithFields ¶
func (e *EmptyLogger) LogWithFields(level LogLevel, msg string, fields map[string]interface{})
func (*EmptyLogger) NewConsoleGroup ¶ added in v0.4.6
func (e *EmptyLogger) NewConsoleGroup() *ConsoleGroup
NewConsoleGroup 创建空的 ConsoleGroup(不执行任何操作)
func (*EmptyLogger) Printf ¶
func (e *EmptyLogger) Printf(format string, args ...interface{})
func (*EmptyLogger) Println ¶
func (e *EmptyLogger) Println(args ...interface{})
func (*EmptyLogger) SetShowCaller ¶
func (e *EmptyLogger) SetShowCaller(show bool)
func (*EmptyLogger) Warn ¶
func (e *EmptyLogger) Warn(format string, args ...interface{})
func (*EmptyLogger) WarnContext ¶
func (e *EmptyLogger) WarnContext(ctx context.Context, format string, args ...interface{})
func (*EmptyLogger) WarnContextKV ¶ added in v0.4.3
func (e *EmptyLogger) WarnContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
func (*EmptyLogger) WarnCtxReturn ¶ added in v0.4.6
func (e *EmptyLogger) WarnCtxReturn(ctx context.Context, format string, args ...interface{}) error
func (*EmptyLogger) WarnKV ¶
func (e *EmptyLogger) WarnKV(msg string, keysAndValues ...interface{})
func (*EmptyLogger) WarnKVReturn ¶ added in v0.4.6
func (e *EmptyLogger) WarnKVReturn(msg string, keysAndValues ...interface{}) error
func (*EmptyLogger) WarnLines ¶ added in v0.4.2
func (e *EmptyLogger) WarnLines(lines ...string)
func (*EmptyLogger) WarnMsg ¶
func (e *EmptyLogger) WarnMsg(msg string)
func (*EmptyLogger) WarnReturn ¶ added in v0.4.6
func (e *EmptyLogger) WarnReturn(format string, args ...interface{}) error
func (*EmptyLogger) WarnWithFields ¶ added in v0.4.6
func (e *EmptyLogger) WarnWithFields(msg string, fields map[string]interface{})
func (*EmptyLogger) Warnf ¶ added in v0.3.0
func (e *EmptyLogger) Warnf(format string, args ...interface{})
func (*EmptyLogger) WithContext ¶
func (e *EmptyLogger) WithContext(ctx context.Context) ILogger
func (*EmptyLogger) WithError ¶
func (e *EmptyLogger) WithError(err error) ILogger
func (*EmptyLogger) WithField ¶
func (e *EmptyLogger) WithField(key string, value interface{}) ILogger
结构化日志构建器方法 - 返回自身以保持链式调用
func (*EmptyLogger) WithFields ¶
func (e *EmptyLogger) WithFields(fields map[string]interface{}) ILogger
type EmptyWriter ¶
type EmptyWriter struct {
// contains filtered or unexported fields
}
EmptyWriter 是 IWriter 接口的空实现
func (*EmptyWriter) Write ¶
func (e *EmptyWriter) Write(p []byte) (n int, err error)
Write 写入数据(空实现)
func (*EmptyWriter) WriteLevel ¶
func (e *EmptyWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
WriteLevel 按级别写入数据(空实现)
type FileLogWriter ¶
type FileLogWriter struct {
// contains filtered or unexported fields
}
FileLogWriter 文件输出器(支持可配置缓冲区大小)
func (*FileLogWriter) GetStats ¶
func (w *FileLogWriter) GetStats() WriterStatsSnapshot
GetStats 获取统计信息
func (*FileLogWriter) IsHealthy ¶
func (w *FileLogWriter) IsHealthy() bool
IsHealthy 检查健康状态(使用 atomic 快速检查)
func (*FileLogWriter) Write ¶
func (w *FileLogWriter) Write(p []byte) (n int, err error)
Write 实现io.Writer接口(写入缓冲区)
func (*FileLogWriter) WriteLevel ¶
func (w *FileLogWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
WriteLevel 按级别写入
type FileWriterOption ¶ added in v0.4.6
type FileWriterOption func(*FileLogWriter)
FileWriterOption 文件输出器配置选项
func WithFileBufferSize ¶ added in v0.4.6
func WithFileBufferSize(size int) FileWriterOption
WithFileBufferSize 设置缓冲区大小(字节)
func WithFileLevel ¶ added in v0.4.6
func WithFileLevel(level LogLevel) FileWriterOption
WithFileLevel 设置日志级别
func WithFilePermission ¶ added in v0.4.6
func WithFilePermission(permission os.FileMode) FileWriterOption
WithFilePermission 设置文件权限
func WithFileWriterPath ¶ added in v0.4.6
func WithFileWriterPath(filePath string) FileWriterOption
WithFileWriterPath 设置文件路径
type FormatType ¶ added in v0.4.0
type FormatType string
FormatType 输出格式类型
const ( FormatText FormatType = "text" FormatJSON FormatType = "json" FormatXML FormatType = "xml" FormatCSV FormatType = "csv" )
type IAdapter ¶
type IAdapter interface {
ILogger
// 生命周期管理
Initialize() error
Close() error
Flush() error
// 适配器特定功能
GetAdapterName() string
GetAdapterVersion() string
IsHealthy() bool
}
IAdapter 日志适配器接口
type IAdvancedLogger ¶
type IAdvancedLogger interface {
ILogger
// 采样和限流
Sample(every int) ILogger
RateLimit(rate float64) ILogger
// 异步日志
Async() ILogger
Sync() error
// 缓冲控制
Buffer(size int) ILogger
Flush() error
// 条件日志
If(condition bool) ILogger
Unless(condition bool) ILogger
}
高级日志功能接口
type IFileWriter ¶
type IFileWriter interface {
io.WriteCloser
// 文件管理
Rotate() error
GetCurrentFile() string
GetFileSize() int64
// 配置
SetMaxSize(size int64)
SetMaxBackups(backups int)
SetMaxAge(days int)
SetCompress(compress bool)
}
IFileWriter 文件写入器接口
type IFormatter ¶
IFormatter 日志格式化器接口
type IFrameworkAdapter ¶
type IFrameworkAdapter interface {
ILogger
// 框架检测
GetFrameworkName() string
GetFrameworkVersion() string
// 原生框架实例
GetNativeLogger() interface{}
// 配置同步
SyncConfig() error
}
通用日志适配器接口
type ILogBuilder ¶
type ILogBuilder interface {
Level(level LogLevel) ILogBuilder
Message(msg string) ILogBuilder
Field(key string, value interface{}) ILogBuilder
Fields(fields map[string]interface{}) ILogBuilder
Error(err error) ILogBuilder
Context(ctx context.Context) ILogBuilder
Caller(skip int) ILogBuilder
Timestamp(t interface{}) ILogBuilder
Build() *LogEntry
Log()
}
构建器模式接口
type ILogger ¶
type ILogger interface {
// 基本日志方法(Printf风格)
Debug(format string, args ...interface{})
Info(format string, args ...interface{})
Warn(format string, args ...interface{})
Error(format string, args ...interface{})
Fatal(format string, args ...interface{})
// Printf风格日志方法(与上面相同,但命名更明确)
Debugf(format string, args ...interface{})
Infof(format string, args ...interface{})
Warnf(format string, args ...interface{})
Errorf(format string, args ...interface{})
Fatalf(format string, args ...interface{})
// 纯文本日志方法(支持单个消息)
DebugMsg(msg string)
InfoMsg(msg string)
WarnMsg(msg string)
ErrorMsg(msg string)
FatalMsg(msg string)
// 返回错误的日志方法(记录日志并返回错误)
DebugReturn(format string, args ...interface{}) error
InfoReturn(format string, args ...interface{}) error
WarnReturn(format string, args ...interface{}) error
ErrorReturn(format string, args ...interface{}) error
// 返回错误的上下文日志方法
DebugCtxReturn(ctx context.Context, format string, args ...interface{}) error
InfoCtxReturn(ctx context.Context, format string, args ...interface{}) error
WarnCtxReturn(ctx context.Context, format string, args ...interface{}) error
ErrorCtxReturn(ctx context.Context, format string, args ...interface{}) error
// 返回错误的键值对日志方法
DebugKVReturn(msg string, keysAndValues ...interface{}) error
InfoKVReturn(msg string, keysAndValues ...interface{}) error
WarnKVReturn(msg string, keysAndValues ...interface{}) error
ErrorKVReturn(msg string, keysAndValues ...interface{}) error
// 带上下文的日志方法
DebugContext(ctx context.Context, format string, args ...interface{})
InfoContext(ctx context.Context, format string, args ...interface{})
WarnContext(ctx context.Context, format string, args ...interface{})
ErrorContext(ctx context.Context, format string, args ...interface{})
FatalContext(ctx context.Context, format string, args ...interface{})
// 结构化日志方法(键值对)
DebugKV(msg string, keysAndValues ...interface{})
InfoKV(msg string, keysAndValues ...interface{})
WarnKV(msg string, keysAndValues ...interface{})
ErrorKV(msg string, keysAndValues ...interface{})
FatalKV(msg string, keysAndValues ...interface{})
// 结构化日志方法(字段映射)- 直接支持 map[string]interface{}
DebugWithFields(msg string, fields map[string]interface{})
InfoWithFields(msg string, fields map[string]interface{})
WarnWithFields(msg string, fields map[string]interface{})
ErrorWithFields(msg string, fields map[string]interface{})
FatalWithFields(msg string, fields map[string]interface{})
// 带上下文的结构化日志方法(键值对)
DebugContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
InfoContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
WarnContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
ErrorContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
FatalContextKV(ctx context.Context, msg string, keysAndValues ...interface{})
// 多行日志方法(自动处理多行格式)
InfoLines(lines ...string)
ErrorLines(lines ...string)
WarnLines(lines ...string)
DebugLines(lines ...string)
// 原始日志条目方法(最灵活)
Log(level LogLevel, msg string)
LogContext(ctx context.Context, level LogLevel, msg string)
LogKV(level LogLevel, msg string, keysAndValues ...interface{})
LogWithFields(level LogLevel, msg string, fields map[string]interface{})
// 配置方法
SetLevel(level LogLevel)
GetLevel() LogLevel
SetShowCaller(show bool)
IsShowCaller() bool
IsLevelEnabled(level LogLevel) bool
// 结构化日志构建器
WithField(key string, value interface{}) ILogger
WithFields(fields map[string]interface{}) ILogger
WithError(err error) ILogger
WithContext(ctx context.Context) ILogger
// 实用方法
Print(args ...interface{}) // 兼容标准log包
Printf(format string, args ...interface{}) // 兼容标准log包
Println(args ...interface{}) // 兼容标准log包
// Console 风格日志功能
NewConsoleGroup() *ConsoleGroup // 创建控制台分组
ConsoleGroup(label string, args ...interface{}) // 开始日志分组
ConsoleGroupCollapsed(label string, args ...interface{}) // 开始折叠分组
ConsoleGroupEnd() // 结束当前分组
ConsoleTable(data interface{}) // 显示表格
ConsoleTime(label string) *Timer // 开始计时
}
ILogger 增强的日志记录器接口,支持多种参数格式
var ( // NoLogger 全局的空日志实例,用于禁用所有日志输出 NoLogger ILogger = NewEmptyLogger() // DiscardLogger 废弃所有日志的实例,与NoLogger功能相同 DiscardLogger ILogger = NewEmptyLogger() // NullLogger 空日志实例,用于测试场景 NullLogger ILogger = NewEmptyLogger() )
全局空日志实例
func WrapWithEmpty ¶
WrapWithEmpty 将任何日志器包装为空实现(用于临时禁用日志)
type ILogrusLogger ¶
type ILogrusLogger interface {
// Logrus特有方法
Trace(args ...interface{})
}
ILogrusLogger Logrus日志框架兼容接口
type IManager ¶
type IManager interface {
// 适配器管理
AddAdapter(name string, adapter IAdapter) error
GetAdapter(name string) (IAdapter, bool)
RemoveAdapter(name string) error
ListAdapters() []string
// 生命周期管理
CloseAll() error
FlushAll() error
// 全局设置
SetLevelAll(level LogLevel)
Broadcast(level LogLevel, format string, args ...interface{})
// 健康检查
HealthCheck() map[string]bool
}
IManager 日志管理器接口
type IMiddleware ¶
type IMiddleware interface {
Process(entry *LogEntry, next func(*LogEntry) error) error
GetName() string
GetPriority() int
}
IMiddleware 日志中间件接口
type ISlogLogger ¶
type ISlogLogger interface {
// slog特有方法
LogAttrs(ctx context.Context, level LogLevel, msg string, attrs ...interface{})
With(args ...interface{}) ISlogLogger
WithGroup(name string) ISlogLogger
}
ISlogLogger 标准库slog兼容接口
type IWriter ¶
type IWriter interface {
io.Writer
// 写入控制
WriteLevel(level LogLevel, data []byte) (n int, err error)
Flush() error
Close() error
// 状态查询
IsHealthy() bool
GetStats() WriterStatsSnapshot
}
IWriter 日志写入器接口
func CreateWriter ¶ added in v0.4.6
func CreateWriter(config *WriterConfig) (IWriter, error)
CreateWriter 根据配置创建 Writer
func NewBufferedWriter ¶
func NewBufferedWriter(opts ...BufferedWriterOption) IWriter
NewBufferedWriter 创建缓冲输出器
func NewConsoleWriter ¶
func NewConsoleWriter(opts ...ConsoleWriterOption) IWriter
NewConsoleWriter 创建控制台输出器
func NewRotateWriter ¶
func NewRotateWriter(opts ...RotateWriterOption) IWriter
NewRotateWriter 创建轮转文件输出器
type IZapLogger ¶
type IZapLogger interface {
// Zap特有方法
DPanic(msg string, fields ...interface{})
Sync() error
Sugar() ILogger
}
IZapLogger Zap日志框架兼容接口
type IZerologLogger ¶
type IZerologLogger interface {
// Zerolog链式方法
Str(key, val string) IZerologLogger
Int(key string, i int) IZerologLogger
Float64(key string, f float64) IZerologLogger
Bool(key string, b bool) IZerologLogger
Time(key string, t interface{}) IZerologLogger
Dur(key string, d interface{}) IZerologLogger
Msg(msg string)
Msgf(format string, v ...interface{})
}
IZerologLogger Zerolog兼容接口
type LevelInfo ¶ added in v0.4.0
type LevelInfo struct {
Name string `json:"name"` // 级别名称
ShortName string `json:"short_name"` // 短名称
Emoji string `json:"emoji"` // 表情符号
Color string `json:"color"` // 颜色代码
Priority int `json:"priority"` // 优先级
Description string `json:"description"` // 描述
Category string `json:"category"` // 类别
}
LevelInfo 级别信息结构
type LogArgs ¶
type LogArgs struct {
Format string
Args []interface{}
Fields map[string]interface{}
Context context.Context
}
日志参数辅助类型
type LogEntry ¶
type LogEntry struct {
Level LogLevel `json:"level"`
Message string `json:"message"`
Timestamp int64 `json:"timestamp"`
Fields map[string]interface{} `json:"fields,omitempty"`
Caller *CallerInfo `json:"caller,omitempty"`
}
LogEntry 日志条目
type LogLevel ¶
type LogLevel int
LogLevel 日志级别类型 (保持向后兼容)
const ( DEBUG LogLevel = iota // 调试级别 - 最详细的信息 INFO // 信息级别 - 一般信息 WARN // 警告级别 - 警告信息 ERROR // 错误级别 - 错误信息 FATAL // 致命级别 - 致命错误,程序将退出 )
基础日志级别常量 (保持现有API兼容性)
扩展级别常量 (新增的高级功能)
const ( SYSTEM LogLevel = 100 + iota // 系统级信息 KERNEL // 内核级信息 DRIVER // 驱动级信息 APPLICATION // 应用级信息 SERVICE // 服务级信息 COMPONENT // 组件级信息 MODULE // 模块级信息 )
系统级扩展级别
const ( BUSINESS LogLevel = 200 + iota // 业务级信息 TRANSACTION // 事务级信息 WORKFLOW // 工作流信息 PROCESS // 流程级信息 )
业务级扩展级别
const ( SECURITY LogLevel = 300 + iota // 安全级信息 AUDIT // 审计级信息 COMPLIANCE // 合规级信息 THREAT // 威胁级信息 )
安全级扩展级别
const ( PERFORMANCE LogLevel = 400 + iota // 性能级信息 METRIC // 指标级信息 BENCHMARK // 基准测试信息 PROFILING // 性能分析信息 )
性能级扩展级别
func GetAllExtendedLevels ¶ added in v0.4.0
func GetAllExtendedLevels() []LogLevel
GetAllExtendedLevels 获取所有级别(包括扩展级别)
func GetExtendedLevels ¶ added in v0.4.0
func GetExtendedLevels() []LogLevel
GetExtendedLevels 获取扩展级别(不包括基础级别)
func GetLevelsByCategory ¶ added in v0.4.0
GetLevelsByCategory 根据类别获取级别
func (LogLevel) Description ¶ added in v0.4.0
Description 返回级别的描述
func (LogLevel) IsApplication ¶ added in v0.4.0
IsApplication 检查是否为应用级别
func (LogLevel) IsBusiness ¶ added in v0.4.0
IsBusiness 检查是否为业务级别
func (LogLevel) IsPerformance ¶ added in v0.4.0
IsPerformance 检查是否为性能级别
func (LogLevel) IsSecurity ¶ added in v0.4.0
IsSecurity 检查是否为安全级别
func (LogLevel) MarshalText ¶ added in v0.4.6
MarshalText 实现文本序列化(用于 JSON 等)
func (LogLevel) ShortString ¶ added in v0.4.0
ShortString 返回级别的短字符串表示
func (*LogLevel) UnmarshalText ¶ added in v0.4.6
UnmarshalText 实现文本反序列化(用于 JSON 等)
func (*LogLevel) UnmarshalYAML ¶ added in v0.4.6
UnmarshalYAML 实现 YAML 反序列化,支持字符串和整数值
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
Logger 主要的日志记录器结构体
func (*Logger) ConsoleGroup ¶ added in v0.4.6
ConsoleGroup 开始一个新的日志分组
func (*Logger) ConsoleGroupCollapsed ¶ added in v0.4.6
ConsoleGroupCollapsed 开始一个折叠的日志分组
func (*Logger) ConsoleGroupEnd ¶ added in v0.4.6
func (l *Logger) ConsoleGroupEnd()
ConsoleGroupEnd 结束当前分组
func (*Logger) ConsoleTable ¶ added in v0.4.6
ConsoleTable 显示表格
func (*Logger) ConsoleTime ¶ added in v0.4.6
ConsoleTime 开始计时
func (*Logger) DebugContext ¶
带上下文的日志方法
func (*Logger) DebugContextKV ¶ added in v0.4.3
func (*Logger) DebugCtxReturn ¶ added in v0.4.6
DebugCtxReturn 记录带上下文的调试日志并返回格式化的错误
func (*Logger) DebugKVReturn ¶ added in v0.4.6
DebugKVReturn 记录带键值对的调试日志并返回错误
func (*Logger) DebugLines ¶ added in v0.4.2
func (*Logger) DebugReturn ¶ added in v0.4.6
DebugReturn 记录调试日志并返回格式化的错误
func (*Logger) DebugWithFields ¶ added in v0.4.6
字段映射方法(直接支持 map[string]any)
func (*Logger) Environment ¶ added in v0.4.6
Environment 环境日志(INFO 级别)
func (*Logger) ErrorContext ¶
func (*Logger) ErrorContextKV ¶ added in v0.4.3
func (*Logger) ErrorCtxReturn ¶ added in v0.4.6
ErrorCtxReturn 记录带上下文的错误日志并返回格式化的错误
func (*Logger) ErrorKVReturn ¶ added in v0.4.6
ErrorKVReturn 记录带键值对的错误日志并返回错误
func (*Logger) ErrorLines ¶ added in v0.4.2
func (*Logger) ErrorReturn ¶ added in v0.4.6
ErrorReturn 记录错误日志并返回格式化的错误
func (*Logger) ErrorWithFields ¶ added in v0.4.6
func (*Logger) FatalContext ¶
func (*Logger) FatalContextKV ¶ added in v0.4.3
func (*Logger) FatalWithFields ¶ added in v0.4.6
func (*Logger) GetContextExtractor ¶ added in v0.4.6
func (l *Logger) GetContextExtractor() ContextExtractor
GetContextExtractor 获取当前的上下文提取器
func (*Logger) InfoContext ¶
func (*Logger) InfoContextKV ¶ added in v0.4.3
func (*Logger) InfoCtxReturn ¶ added in v0.4.6
InfoCtxReturn 记录带上下文的信息日志并返回格式化的错误
func (*Logger) InfoKVReturn ¶ added in v0.4.6
InfoKVReturn 记录带键值对的信息日志并返回错误
func (*Logger) InfoReturn ¶ added in v0.4.6
InfoReturn 记录信息日志并返回格式化的错误
func (*Logger) InfoWithFields ¶ added in v0.4.6
func (*Logger) IsLevelEnabled ¶
IsLevelEnabled 检查给定级别是否启用
func (*Logger) LogContext ¶
func (*Logger) LogWithFields ¶
func (*Logger) NewConsoleGroup ¶ added in v0.4.6
func (l *Logger) NewConsoleGroup() *ConsoleGroup
NewConsoleGroup 创建新的控制台分组 继承 logger 的 output(可能是 buffer/stdout/文件),但不走 logger 格式化
func (*Logger) Performance ¶ added in v0.4.6
Performance 性能日志(PERFORMANCE 级别,支持可选的详细信息)
func (*Logger) SetContextExtractor ¶ added in v0.4.6
func (l *Logger) SetContextExtractor(extractor ContextExtractor)
SetContextExtractor 设置自定义上下文提取器
func (*Logger) StartTiming ¶ added in v0.4.6
StartTiming 开始计时
func (*Logger) WarnContext ¶
func (*Logger) WarnContextKV ¶ added in v0.4.3
func (*Logger) WarnCtxReturn ¶ added in v0.4.6
WarnCtxReturn 记录带上下文的警告日志并返回格式化的错误
func (*Logger) WarnKVReturn ¶ added in v0.4.6
WarnKVReturn 记录带键值对的警告日志并返回错误
func (*Logger) WarnReturn ¶ added in v0.4.6
WarnReturn 记录警告日志并返回格式化的错误
func (*Logger) WarnWithFields ¶ added in v0.4.6
func (*Logger) WithAsyncWrite ¶ added in v0.4.6
WithAsyncWrite 设置是否异步写入
func (*Logger) WithBatchSize ¶ added in v0.4.6
WithBatchSize 设置批量写入大小
func (*Logger) WithBatchTimeout ¶ added in v0.4.6
WithBatchTimeout 设置批量写入超时时间
func (*Logger) WithBufferSize ¶ added in v0.4.6
WithBufferSize 设置缓冲区大小
func (*Logger) WithCallerDepth ¶ added in v0.4.6
WithCallerDepth 设置调用者深度
func (*Logger) WithCallerKey ¶ added in v0.4.6
WithCallerKey 设置调用者字段名
func (*Logger) WithColorful ¶ added in v0.4.0
WithColorful 设置是否使用彩色输出
func (*Logger) WithContext ¶
WithContext 带上下文的logger(当前实现返回自身)
func (*Logger) WithContextExtractor ¶ added in v0.4.6
func (l *Logger) WithContextExtractor(extractor ContextExtractor) *Logger
WithContextExtractor 设置上下文提取器
func (*Logger) WithContextKeys ¶ added in v0.4.6
WithContextKeys 配置 Logger 在记录 Context 日志时提取哪些 key
func (*Logger) WithFields ¶
WithFields 添加多个字段信息(结构化日志)
func (*Logger) WithFormat ¶ added in v0.4.6
func (l *Logger) WithFormat(format FormatType) *Logger
WithFormat 设置输出格式
func (*Logger) WithFormatter ¶ added in v0.4.6
func (l *Logger) WithFormatter(formatter IFormatter) *Logger
WithFormatter 设置格式化器
func (*Logger) WithLevelKey ¶ added in v0.4.6
WithLevelKey 设置日志级别字段名
func (*Logger) WithMessageKey ¶ added in v0.4.6
WithMessageKey 设置消息字段名
func (*Logger) WithMiddleware ¶ added in v0.4.6
func (l *Logger) WithMiddleware(middleware []IMiddleware) *Logger
WithMiddleware 设置中间件列表
func (*Logger) WithOutput ¶ added in v0.4.6
WithOutput 设置输出目标
func (*Logger) WithPrefix ¶ added in v0.4.0
WithPrefix 设置日志前缀
func (*Logger) WithShowCaller ¶ added in v0.4.0
WithShowCaller 设置是否显示调用者信息
func (*Logger) WithShowStacktrace ¶ added in v0.4.6
WithShowStacktrace 设置是否显示堆栈跟踪
func (*Logger) WithStacktraceKey ¶ added in v0.4.6
WithStacktraceKey 设置堆栈跟踪字段名
func (*Logger) WithTimeFormat ¶ added in v0.4.6
WithTimeFormat 设置时间格式
func (*Logger) WithTimestampKey ¶ added in v0.4.6
WithTimestampKey 设置时间戳字段名
func (*Logger) WithWriters ¶ added in v0.4.6
WithWriters 设置写入器列表
type LoggerStats ¶
type LoggerStats struct {
StartTime time.Time `json:"start_time"`
TotalLogs int64 `json:"total_logs"`
LevelCounts map[LogLevel]int64 `json:"level_counts"`
ErrorCount int64 `json:"error_count"`
LastLogTime time.Time `json:"last_log_time"`
Uptime time.Duration `json:"uptime"`
BytesWritten int64 `json:"bytes_written"`
// contains filtered or unexported fields
}
LoggerStats 日志统计信息
func (*LoggerStats) IncrementLevel ¶
func (s *LoggerStats) IncrementLevel(level LogLevel)
IncrementLevel 增加级别计数
type MultiLogWriter ¶
type MultiLogWriter struct {
// contains filtered or unexported fields
}
MultiLogWriter 多输出器(同时写入多个输出器,实现日志分发)
func (*MultiLogWriter) GetStats ¶
func (w *MultiLogWriter) GetStats() WriterStatsSnapshot
GetStats 获取统计信息
func (*MultiLogWriter) IsHealthy ¶
func (w *MultiLogWriter) IsHealthy() bool
IsHealthy 检查是否至少有一个输出器健康
func (*MultiLogWriter) Write ¶
func (w *MultiLogWriter) Write(p []byte) (n int, err error)
Write 实现io.Writer接口
func (*MultiLogWriter) WriteLevel ¶
func (w *MultiLogWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
WriteLevel 按级别写入
type MultiWriterOption ¶ added in v0.4.6
type MultiWriterOption func(*MultiLogWriter)
MultiWriterOption 多输出器配置选项
func WithMultiLevel ¶ added in v0.4.6
func WithMultiLevel(level LogLevel) MultiWriterOption
WithMultiLevel 设置日志级别
func WithWriters ¶ added in v0.4.6
func WithWriters(writers ...IWriter) MultiWriterOption
WithWriters 设置输出器列表
type OutputType ¶ added in v0.4.6
type OutputType string
OutputType 输出类型
const ( OutputConsole OutputType = "console" // 控制台输出 OutputFile OutputType = "file" // 文件输出 OutputRotate OutputType = "rotate" // 轮转文件输出 OutputStdout OutputType = "stdout" // 标准输出 OutputStderr OutputType = "stderr" // 标准错误输出 )
type PerformanceLevel ¶ added in v0.4.6
PerformanceLevel 性能级别定义
type RotateLogWriter ¶
type RotateLogWriter struct {
// contains filtered or unexported fields
}
RotateLogWriter 轮转文件输出器(支持按大小自动轮转,支持可配置缓冲区)
func (*RotateLogWriter) GetStats ¶
func (w *RotateLogWriter) GetStats() WriterStatsSnapshot
GetStats 获取统计信息
func (*RotateLogWriter) IsHealthy ¶
func (w *RotateLogWriter) IsHealthy() bool
IsHealthy 检查健康状态(使用 atomic 快速检查)
func (*RotateLogWriter) Write ¶
func (w *RotateLogWriter) Write(p []byte) (n int, err error)
Write 实现io.Writer接口(写入缓冲区)
func (*RotateLogWriter) WriteLevel ¶
func (w *RotateLogWriter) WriteLevel(level LogLevel, data []byte) (n int, err error)
WriteLevel 按级别写入
type RotateWriterOption ¶ added in v0.4.6
type RotateWriterOption func(*RotateLogWriter)
RotateWriterOption 轮转文件输出器配置选项
func WithCompress ¶ added in v0.4.6
func WithCompress(compress bool) RotateWriterOption
WithCompress 设置是否压缩旧文件
func WithFilePath ¶ added in v0.4.6
func WithFilePath(filePath string) RotateWriterOption
WithFilePath 设置文件路径
func WithMaxAge ¶ added in v0.4.6
func WithMaxAge(maxAge time.Duration) RotateWriterOption
WithMaxAge 设置最大保留时间
func WithMaxFiles ¶ added in v0.4.6
func WithMaxFiles(maxFiles int) RotateWriterOption
WithMaxFiles 设置最大文件数
func WithMaxSize ¶ added in v0.4.6
func WithMaxSize(maxSize int64) RotateWriterOption
WithMaxSize 设置最大文件大小(字节)
func WithRotateBufferSize ¶ added in v0.4.6
func WithRotateBufferSize(size int) RotateWriterOption
WithRotateBufferSize 设置缓冲区大小(字节)
func WithRotateLevel ¶ added in v0.4.6
func WithRotateLevel(level LogLevel) RotateWriterOption
WithRotateLevel 设置日志级别
func WithRotatePermission ¶ added in v0.4.6
func WithRotatePermission(permission os.FileMode) RotateWriterOption
WithRotatePermission 设置文件权限
type SpecialLogType ¶
type SpecialLogType struct {
// contains filtered or unexported fields
}
SpecialLogType 特殊日志类型
type Timer ¶ added in v0.4.6
type Timer struct {
// contains filtered or unexported fields
}
Timer 计时器 输出直接写入 output(默认 os.Stdout),不走 logger 格式化
func NewTimer ¶ added in v0.4.6
NewTimer 创建新的计时器 output 为输出目标,传入 nil 则使用 os.Stdout 注意:如果多个 Timer 共享同一个 io.Writer,该 Writer 必须是线程安全的(如 os.Stdout)
type Timing ¶
type Timing struct {
// contains filtered or unexported fields
}
Timing 计时器辅助结构
type WriterConfig ¶ added in v0.4.6
type WriterConfig struct {
Type OutputType `json:"type" yaml:"type"` // 输出类型
FilePath string `json:"file_path" yaml:"file_path"` // 文件路径
MaxSize int64 `json:"max_size" yaml:"max_size"` // 最大文件大小(字节)
MaxFiles int `json:"max_files" yaml:"max_files"` // 最大文件数
MaxAge int `json:"max_age" yaml:"max_age"` // 最大保存天数
Compress bool `json:"compress" yaml:"compress"` // 是否压缩
Permission os.FileMode `json:"permission" yaml:"permission"` // 文件权限
BufferSize int `json:"buffer_size" yaml:"buffer_size"` // 缓冲区大小
Output io.Writer `json:"-" yaml:"-"` // 自定义输出
}
WriterConfig Writer 配置
type WriterStatsSnapshot ¶ added in v0.4.6
type WriterStatsSnapshot struct {
BytesWritten int64 `json:"bytes_written"` // 已写入字节总数
LinesWritten int64 `json:"lines_written"` // 已写入行数总数
ErrorCount int64 `json:"error_count"` // 错误次数总数
LastWrite time.Time `json:"last_write"` // 最后一次写入时间
StartTime time.Time `json:"start_time"` // 输出器启动时间
Uptime time.Duration `json:"uptime"` // 运行时长
}
WriterStatsSnapshot 统计信息快照(用于外部访问的只读数据)