Documentation
¶
Index ¶
- Constants
- func NewFileWriter(fns ...func(*FileConfig)) (*rotatefile.Writer, error)
- func NewFilesClear(ctx context.Context, fns ...util.WithFn[FileClearConfig]) *rotatefile.FilesClear
- func NewSlog(w io.Writer, slogOpts *SlogHandlerOptions, fns ...util.WithFn[Options]) (Logger[slog.Attr, slog.Level], LevelToggler)
- func NewZapCoreWithFilter(enc zapcore.Encoder, ws zapcore.WriteSyncer, filter zap.LevelEnablerFunc) zapcore.Core
- func NewZapJSONEncoder() zapcore.Encoder
- func SlogLevelEncoder(level slog.Level) slog.Value
- func ZapLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder)
- type Attr
- type ChildLoggerOptions
- type FileClearConfig
- type FileConfig
- type Level
- type LevelEffect
- type LevelToggler
- type LogLevel
- type Logger
- type LoggerFeature
- type Options
- type Slog
- type SlogHandler
- type SlogHandlerOptions
- type Writer
Constants ¶
View Source
const ( Trace = "trace" Debug = "debug" Info = "info" Warn = "warn" Error = "error" Fatal = "fatal" Panic = "panic" )
View Source
const ( SlogLevelSilent = slog.Level(LevelSilent) SlogLevelTrace = slog.Level(LevelTrace) SlogLevelDebug = slog.Level(LevelDebug) SlogLevelInfo = slog.Level(LevelInfo) SlogLevelWarn = slog.Level(LevelWarn) SlogLevelError = slog.Level(LevelError) SlogLevelFatal = slog.Level(LevelFatal) SlogLevelAll = slog.Level(LevelAll) )
View Source
const ( ZapLevelSilent = zapcore.Level(LevelSilent) ZapLevelTrace = zapcore.Level(LevelTrace) ZapLevelDebug = zapcore.Level(LevelDebug) ZapLevelInfo = zapcore.Level(LevelInfo) ZapLevelWarn = zapcore.Level(LevelWarn) ZapLevelError = zapcore.Level(LevelError) ZapLevelFatal = zapcore.Level(LevelFatal) ZapLevelAll = zapcore.Level(LevelAll) )
Variables ¶
This section is empty.
Functions ¶
func NewFileWriter ¶
func NewFileWriter(fns ...func(*FileConfig)) (*rotatefile.Writer, error)
func NewFilesClear ¶
func NewFilesClear(ctx context.Context, fns ...util.WithFn[FileClearConfig]) *rotatefile.FilesClear
func NewSlog ¶
func NewSlog( w io.Writer, slogOpts *SlogHandlerOptions, fns ...util.WithFn[Options], ) (Logger[slog.Attr, slog.Level], LevelToggler)
NewSlog base on go std lib log/slog
func NewZapCoreWithFilter ¶
func NewZapCoreWithFilter( enc zapcore.Encoder, ws zapcore.WriteSyncer, filter zap.LevelEnablerFunc, ) zapcore.Core
func NewZapJSONEncoder ¶
func ZapLevelEncoder ¶
func ZapLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder)
Types ¶
type ChildLoggerOptions ¶ added in v0.1.0
type FileClearConfig ¶
type FileClearConfig = rotatefile.CConfig
type FileConfig ¶
type FileConfig = rotatefile.Config
type Level ¶
type Level = uint8
const ( LevelSilent Level = 0 LevelTrace Level = 1 << 0 LevelDebug Level = 1 << 1 LevelInfo Level = 1 << 2 LevelWarn Level = 1 << 3 LevelError Level = 1 << 4 LevelFatal Level = 1 << 5 LevelAll Level = LevelTrace | LevelDebug | LevelInfo | LevelWarn | LevelError | LevelFatal )
type LevelEffect ¶
type LevelEffect Level
func (LevelEffect) OnWrite ¶
func (l LevelEffect) OnWrite(_ *zapcore.CheckedEntry, _ []zapcore.Field)
type LevelToggler ¶
type LevelToggler func(Level)
func NewSlogHandler ¶
func NewSlogHandler(w io.Writer, opts *SlogHandlerOptions) (slog.Handler, LevelToggler)
func NewZapCore ¶
func NewZapCore( enc zapcore.Encoder, ws zapcore.WriteSyncer, l Level, ) (zapcore.Core, LevelToggler)
func NewZapLevelFilter ¶
func NewZapLevelFilter(levelBitMask Level) (zap.LevelEnablerFunc, LevelToggler)
type LogLevel ¶
type LogLevel[T constraints.Signed] struct { // contains filtered or unexported fields }
LogLevel is a wrapper for dynamically changing log level.
type Logger ¶
type Logger[T Attr, Level constraints.Signed] interface { LoggerFeature[T, Level] Log(ctx context.Context, level Level, msg string, attrs ...T) Trace(msg string, args ...T) Debug(msg string, args ...T) Info(msg string, args ...T) Warn(msg string, args ...T) Error(msg string, args ...T) Fatal(msg string, args ...T) }
type LoggerFeature ¶
type LoggerFeature[T Attr, Level constraints.Signed] interface { // Child // - [zh] 创建一个新的记录器,均附带指定的属性。 // - [en] creates a new logger, all with the specified attributes. Child(...T) Logger[T, Level] Enabled(Level) bool // Named { "name": "name1.name2.name3" } // - [zh] 创建一个新的具有给定名称的记录器,连接到父级后。 // - [en] creates a new logger with the given name, connected to the parent after. Named(name string) Logger[T, Level] // WithGroup { "level": "info", "name": { "key": "value" } } // - [zh] 创建子 logger, 之后的属性添加到 name 字段下。 // - [en] create a child logger, the following attributes are added to the name field. WithGroup(name string) Logger[T, Level] // WithOptions // - [zh] 创建子 logger, 可独立修改 source 等信息, 部分支持 // - [en] create a child logger, you can independently modify source and other information, partially supported WithOptions(*ChildLoggerOptions) Logger[T, Level] // Sync only for zap if you used // see [zap.Logger.Sync](https://pkg.go.dev/go.uber.org/zap#Logger.Sync) Sync() error }
type SlogHandlerOptions ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.