Documentation
¶
Index ¶
- Constants
- type ChannelOption
- type Config
- type ContextFieldsFunc
- type CronAdapter
- type ESAdapter
- type Logger
- func (l *Logger) Channel(name string) *Logger
- func (l *Logger) DPanic(msg string, fields ...zap.Field)
- func (l *Logger) DPanicf(format string, args ...any)
- func (l *Logger) Debug(msg string, fields ...zap.Field)
- func (l *Logger) DebugCtx(ctx context.Context, msg string, fields ...zap.Field)
- func (l *Logger) Debugf(format string, args ...any)
- func (l *Logger) Debugw(msg string, keysAndValues ...any)
- func (l *Logger) DebugwCtx(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) DroppedMessages() int64
- func (l *Logger) Error(msg string, fields ...zap.Field)
- func (l *Logger) ErrorCtx(ctx context.Context, msg string, fields ...zap.Field)
- func (l *Logger) Errorf(format string, args ...any)
- func (l *Logger) Errorw(msg string, keysAndValues ...any)
- func (l *Logger) ErrorwCtx(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) Fatal(msg string, fields ...zap.Field)
- func (l *Logger) Fatalf(format string, args ...any)
- func (l *Logger) GetLevel() string
- func (l *Logger) HError(msg string, fields ...zap.Field)
- func (l *Logger) HErrorTo(url, msg string, fields ...zap.Field)
- func (l *Logger) HErrorTof(url, format string, args ...any)
- func (l *Logger) HErrorf(format string, args ...any)
- func (l *Logger) HInfo(msg string, fields ...zap.Field)
- func (l *Logger) HInfoTo(url, msg string, fields ...zap.Field)
- func (l *Logger) HInfoTof(url, format string, args ...any)
- func (l *Logger) HInfof(format string, args ...any)
- func (l *Logger) Info(msg string, fields ...zap.Field)
- func (l *Logger) InfoCtx(ctx context.Context, msg string, fields ...zap.Field)
- func (l *Logger) Infof(format string, args ...any)
- func (l *Logger) Infow(msg string, keysAndValues ...any)
- func (l *Logger) InfowCtx(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) LogIf(err error)
- func (l *Logger) LogIfCtx(ctx context.Context, err error)
- func (l *Logger) Named(name string) *Logger
- func (l *Logger) Panic(msg string, fields ...zap.Field)
- func (l *Logger) Panicf(format string, args ...any)
- func (l *Logger) SetLevel(level string)
- func (l *Logger) SlogHandler() slog.Handler
- func (l *Logger) Sugar() *zap.SugaredLogger
- func (l *Logger) Sync()
- func (l *Logger) Undo()
- func (l *Logger) Warn(msg string, fields ...zap.Field)
- func (l *Logger) WarnCtx(ctx context.Context, msg string, fields ...zap.Field)
- func (l *Logger) WarnIf(err error)
- func (l *Logger) WarnIfCtx(ctx context.Context, err error)
- func (l *Logger) Warnf(format string, args ...any)
- func (l *Logger) Warnw(msg string, keysAndValues ...any)
- func (l *Logger) WarnwCtx(ctx context.Context, msg string, keysAndValues ...any)
- func (l *Logger) With(fields ...zap.Field) *Logger
- func (l *Logger) Zap() *zap.Logger
- type Messager
- type MigrateAdapter
- type Option
- func WithBufferSize(size int) Option
- func WithBuffered(enabled bool) Option
- func WithChannel(name string, opts ...ChannelOption) Option
- func WithCompress(b bool) Option
- func WithConsole(b bool) Option
- func WithContextFields(fn ContextFieldsFunc) Option
- func WithDivision(d string) Option
- func WithDurationEncoder(encoder zapcore.DurationEncoder) Option
- func WithFile(b bool) Option
- func WithFlushInterval(d time.Duration) Option
- func WithLevel(l string) Option
- func WithMaxAge(days int) Option
- func WithMaxBackups(n int) Option
- func WithMaxSize(mb int) Option
- func WithMessager(m Messager) Option
- func WithMessagerQueueSize(size int) Option
- func WithOutJSON(b bool) Option
- func WithPath(p string) Option
- type RestyAdapter
Constants ¶
const Version = "v2.1.0"
Version 是当前库版本号。
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChannelOption ¶
type ChannelOption func(*channelConfig) error
func WithChannelDuplicateToDefault ¶
func WithChannelDuplicateToDefault(enabled bool) ChannelOption
func WithChannelPath ¶
func WithChannelPath(path string) ChannelOption
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config 是 v2 Logger 的内部配置容器。
字段全部不导出是有意为之——v2 采用 Functional Options 模式(New(opts ...Option)), Config 不应该被外部直接构造或反序列化(YAML/JSON 装配请通过 Option 函数)。
Config 类型本身暴露在 godoc 中是为了让 IDE / 文档工具能定位选项作用对象, 而非作为公开 API 接受用户构造的实例。
反模式(禁止):
cfg := &logger.Config{ ... } // ❌ 字段不导出,无法这样构造
_, _ = logger.New(cfg) // ❌ New 不接受 Config,只接受 Option
正确用法:
l, err := logger.New(logger.WithPath("/var/log/app"), logger.WithOutJSON(true))
type ContextFieldsFunc ¶
ContextFieldsFunc 从 context.Context 中提取需要注入日志的字段。 典型用法:提取 trace_id、request_id 等链路追踪信息。
type CronAdapter ¶
type CronAdapter struct {
// contains filtered or unexported fields
}
CronAdapter 适配 robfig/cron 的日志接口.
func NewCronAdapter ¶
func NewCronAdapter(l *Logger) *CronAdapter
NewCronAdapter 创建 Cron 日志适配器。l 不能为 nil,否则 panic。
func (*CronAdapter) Error ¶
func (a *CronAdapter) Error(err error, msg string, keysAndValues ...any)
Error implements cron.Logger.
func (*CronAdapter) Info ¶
func (a *CronAdapter) Info(msg string, keysAndValues ...any)
Info implements cron.Logger.
type ESAdapter ¶
type ESAdapter struct {
// contains filtered or unexported fields
}
ESAdapter 适配 Elasticsearch client 的日志接口.
func NewESAdapter ¶
NewESAdapter 创建 ES 日志适配器。l 不能为 nil,否则 panic。
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
func (*Logger) DebugwCtx ¶ added in v2.1.0
DebugwCtx 以 Debug 级别记录 Sugar 风格 key-value 日志,并自动合并 ContextFieldsFunc 从 ctx 提取的字段。
与 Debugw 的差别:在调用 zap Sugar 之前,会通过 ctxKeysAndValues 把 contextFields(ctx) 提取的 zap.Field 前置到 keysAndValues。未配置 WithContextFields 时,行为等价于 Debugw。
用法:
log.DebugwCtx(ctx, "cache miss", "key", "user:42", "tier", "L2")
func (*Logger) DroppedMessages ¶
DroppedMessages 返回异步 Messager 因队列满而丢弃的推送消息数量。 如果未配置 Messager,始终返回 0。
func (*Logger) ErrorwCtx ¶ added in v2.1.0
ErrorwCtx 以 Error 级别记录 Sugar 风格 key-value 日志,并自动合并 ctx 字段。 行为参见 DebugwCtx。
func (*Logger) InfowCtx ¶ added in v2.1.0
InfowCtx 以 Info 级别记录 Sugar 风格 key-value 日志,并自动合并 ctx 字段。 行为参见 DebugwCtx。
func (*Logger) SetLevel ¶
SetLevel 运行时动态调整日志级别,影响所有 logger(包括 channel)。 支持: debug, info, warn, error, dpanic, panic, fatal.
func (*Logger) SlogHandler ¶
SlogHandler 返回一个 slog.Handler,将 slog 日志写入当前 Logger 的 zap core。 用于统一第三方库的 slog 输出到同一个日志管道。
slog.SetDefault(slog.New(logger.SlogHandler()))
func (*Logger) Sugar ¶
func (l *Logger) Sugar() *zap.SugaredLogger
type Messager ¶
type Messager interface {
// Send 发送消息到默认地址.
Send(msg string)
// SendTo 发送消息到指定 URL.
SendTo(url, msg string)
}
Messager 消息推送接口. 实现此接口以将日志消息发送到外部平台(飞书/钉钉/企微等).
type MigrateAdapter ¶
type MigrateAdapter struct {
// contains filtered or unexported fields
}
MigrateAdapter 适配 gtkit/migrate/v2 的 migration.Logger 接口. 通过 SugaredLogger 的 key-value 方式输出结构化日志.
func NewMigrateAdapter ¶
func NewMigrateAdapter(l *Logger) *MigrateAdapter
NewMigrateAdapter 创建 Migrate 日志适配器。l 不能为 nil,否则 panic。
func (*MigrateAdapter) Error ¶
func (a *MigrateAdapter) Error(msg string, keysAndValues ...any)
Error implements migration.Logger.
func (*MigrateAdapter) Info ¶
func (a *MigrateAdapter) Info(msg string, keysAndValues ...any)
Info implements migration.Logger.
func (*MigrateAdapter) Warn ¶
func (a *MigrateAdapter) Warn(msg string, keysAndValues ...any)
Warn implements migration.Logger.
type Option ¶
func WithBufferSize ¶
WithBufferSize 设置缓冲区大小(字节),默认 256KB(256*1024)。 仅在 WithBuffered(true) 时生效。
func WithBuffered ¶
WithBuffered 启用文件写入缓冲(BufferedWriteSyncer)。 缓冲区大小默认 256KB,刷写间隔默认 30 秒。 启用后可显著减少系统调用次数,提升高吞吐场景下的写入性能, 但进程异常退出时可能丢失缓冲区中未刷写的日志。
func WithChannel ¶
func WithChannel(name string, opts ...ChannelOption) Option
func WithCompress ¶
func WithConsole ¶
func WithContextFields ¶
func WithContextFields(fn ContextFieldsFunc) Option
func WithDivision ¶
func WithDurationEncoder ¶ added in v2.0.5
func WithDurationEncoder(encoder zapcore.DurationEncoder) Option
func WithFlushInterval ¶
WithFlushInterval 设置缓冲区自动刷写间隔,默认 30 秒。 仅在 WithBuffered(true) 时生效。
func WithMaxAge ¶
func WithMaxBackups ¶
func WithMaxSize ¶
func WithMessager ¶
func WithMessagerQueueSize ¶
func WithOutJSON ¶
type RestyAdapter ¶
type RestyAdapter struct {
// contains filtered or unexported fields
}
RestyAdapter 适配 go-resty 的日志接口.
func NewRestyAdapter ¶
func NewRestyAdapter(l *Logger) *RestyAdapter
NewRestyAdapter 创建 Resty 日志适配器。l 不能为 nil,否则 panic。
func (*RestyAdapter) Debugf ¶
func (a *RestyAdapter) Debugf(format string, v ...any)
Debugf implements resty.Logger.
func (*RestyAdapter) Errorf ¶
func (a *RestyAdapter) Errorf(format string, v ...any)
Errorf implements resty.Logger.
func (*RestyAdapter) Warnf ¶
func (a *RestyAdapter) Warnf(format string, v ...any)
Warnf implements resty.Logger.