Documentation ¶
Index ¶
- Constants
- func RotateLog(ctx context.Context, cfg *FileCoreConfig) io.WriteCloser
- func SingleLog(ctx context.Context, cfg *FileCoreConfig) io.WriteCloser
- func WrapCore(core xLogCore, cfg zapcore.EncoderConfig) (xLogCore, error)
- func WrapCoreNewLevelEnabler(core xLogCore, lvlEnabler zapcore.LevelEnabler, cfg zapcore.EncoderConfig) (xLogCore, error)
- func WrapCores(cores []xLogCore, cfg zapcore.EncoderConfig) (xLogCore, error)
- func WrapCoresNewLevelEnabler(cores []xLogCore, lvlEnabler zapcore.LevelEnabler, cfg zapcore.EncoderConfig) (xLogCore, error)
- func XLogBufferSyncer(ctx context.Context, writer io.WriteCloser, bufSize uint64, ...) zapcore.WriteSyncer
- func XLogLockSyncer(ctx context.Context, writer io.WriteCloser) zapcore.WriteSyncer
- func XLogTeeCore(cores ...xLogCore) xLogCore
- type AntsXLogger
- type Banner
- type FileCoreConfig
- type FxXLogger
- type GoRedisXLogger
- type GormXLogger
- func (l *GormXLogger) Error(ctx context.Context, msg string, data ...any)
- func (l *GormXLogger) Info(ctx context.Context, msg string, data ...any)
- func (l *GormXLogger) LogMode(lvl glogger.LogLevel) glogger.Interface
- func (l *GormXLogger) Trace(ctx context.Context, begin time.Time, ...)
- func (l *GormXLogger) Warn(ctx context.Context, msg string, data ...any)
- type GormXLoggerOption
- type XAnyLogger
- type XBannerPrinter
- type XBasicContextLogger
- type XBasicLogger
- type XFormatLogger
- type XLogCoreConstructor
- type XLogger
- type XLoggerOption
- func WithXLoggerContext(ctx context.Context) XLoggerOption
- func WithXLoggerContextFieldExtract(field string, mapTo ...string) XLoggerOption
- func WithXLoggerEncoder(logEnc logEncoderType) XLoggerOption
- func WithXLoggerFileWriter(coreCfg *FileCoreConfig) XLoggerOption
- func WithXLoggerLevel(lvl logLevel) XLoggerOption
- func WithXLoggerLevelEncoder(lvlEnc zapcore.LevelEncoder) XLoggerOption
- func WithXLoggerStdOutWriter() XLoggerOption
- func WithXLoggerTimeEncoder(tsEnc zapcore.TimeEncoder) XLoggerOption
Constants ¶
const ( LogLevelDebug logLevel = "DEBUG" LogLevelInfo logLevel = "INFO" LogLevelWarn logLevel = "WARN" LogLevelError logLevel = "ERROR" )
const ( JSON logEncoderType = iota PlainText )
const ( StdOut logOutWriterType = iota File )
const ( ContextKeyMapToOmitempty = "_" ContextKeyMapToItself = "" )
const ( B fileSizeUnit = 1 << (10 * iota) KB MB )
Variables ¶
This section is empty.
Functions ¶
func RotateLog ¶
func RotateLog(ctx context.Context, cfg *FileCoreConfig) io.WriteCloser
func SingleLog ¶
func SingleLog(ctx context.Context, cfg *FileCoreConfig) io.WriteCloser
func WrapCore ¶
func WrapCore(core xLogCore, cfg zapcore.EncoderConfig) (xLogCore, error)
func WrapCoreNewLevelEnabler ¶
func WrapCoreNewLevelEnabler(core xLogCore, lvlEnabler zapcore.LevelEnabler, cfg zapcore.EncoderConfig) (xLogCore, error)
func WrapCores ¶
func WrapCores(cores []xLogCore, cfg zapcore.EncoderConfig) (xLogCore, error)
func WrapCoresNewLevelEnabler ¶
func WrapCoresNewLevelEnabler(cores []xLogCore, lvlEnabler zapcore.LevelEnabler, cfg zapcore.EncoderConfig) (xLogCore, error)
func XLogBufferSyncer ¶
func XLogBufferSyncer( ctx context.Context, writer io.WriteCloser, bufSize uint64, flushInterval int64, ) zapcore.WriteSyncer
func XLogLockSyncer ¶
func XLogLockSyncer(ctx context.Context, writer io.WriteCloser) zapcore.WriteSyncer
func XLogTeeCore ¶
func XLogTeeCore(cores ...xLogCore) xLogCore
Types ¶
type AntsXLogger ¶
type AntsXLogger struct {
// contains filtered or unexported fields
}
func NewAntsXLogger ¶
func NewAntsXLogger(logger XLogger) *AntsXLogger
func (*AntsXLogger) Printf ¶
func (l *AntsXLogger) Printf(format string, args ...any)
type FileCoreConfig ¶
type FileCoreConfig struct { FilePath string `json:"filePath" yaml:"filePath"` Filename string `json:"filename" yaml:"filename"` FileMaxSize string `json:"fileMaxSize" yaml:"fileMaxSize"` FileMaxAge string `json:"fileMaxAge" yaml:"fileMaxAge"` FileZipName string `json:"fileZipName" yaml:"fileZipName"` FileBufferSize string `json:"fileBufferSize" yaml:"fileBufferSize"` FileBufferFlushInterval int64 `json:"fileBufferFlushInterval" yaml:"fileBufferFlushInterval"` // Milliseconds FileMaxBackups int `json:"fileMaxBackups" yaml:"fileMaxBackups"` FileCompressBatch int `json:"fileCompressBatch" yaml:"fileCompressBatch"` FileCompressible bool `json:"fileCompressible" yaml:"fileCompressible"` FileRotateEnable bool `json:"fileRotateEnable" yaml:"fileRotateEnable"` }
type FxXLogger ¶
type FxXLogger struct {
// contains filtered or unexported fields
}
func NewFxXLogger ¶
type GoRedisXLogger ¶
type GoRedisXLogger struct {
// contains filtered or unexported fields
}
func NewGoRedisXLogger ¶
func NewGoRedisXLogger(logger XLogger) *GoRedisXLogger
type GormXLogger ¶
type GormXLogger struct {
// contains filtered or unexported fields
}
func NewGormXLogger ¶
func NewGormXLogger(logger XLogger, opts ...GormXLoggerOption) *GormXLogger
func (*GormXLogger) Error ¶
func (l *GormXLogger) Error(ctx context.Context, msg string, data ...any)
type GormXLoggerOption ¶
func WithGormXLoggerIgnoreRecord404Err ¶
func WithGormXLoggerIgnoreRecord404Err() GormXLoggerOption
func WithGormXLoggerLogLevel ¶
func WithGormXLoggerLogLevel(lvl glogger.LogLevel) GormXLoggerOption
func WithGormXLoggerParameterizedQueries ¶
func WithGormXLoggerParameterizedQueries() GormXLoggerOption
func WithGormXLoggerSlowThreshold ¶
func WithGormXLoggerSlowThreshold(threshold time.Duration) GormXLoggerOption
type XAnyLogger ¶
type XBannerPrinter ¶
type XBannerPrinter interface {
Banner(banner Banner)
}
type XBasicContextLogger ¶
type XBasicContextLogger interface { DebugContext(ctx context.Context, msg string, fields ...zap.Field) InfoContext(ctx context.Context, msg string, fields ...zap.Field) WarnContext(ctx context.Context, msg string, fields ...zap.Field) ErrorContext(ctx context.Context, err error, msg string, fields ...zap.Field) ErrorStackContext(ctx context.Context, err error, msg string, fields ...zap.Field) }
type XBasicLogger ¶
type XFormatLogger ¶
type XLogCoreConstructor ¶
type XLogCoreConstructor func( context.Context, zapcore.LevelEnabler, logEncoderType, zapcore.LevelEncoder, zapcore.TimeEncoder, ) xLogCore
type XLogger ¶
type XLogger interface { IncreaseLogLevel(level zapcore.Level) Level() string Sync() error Close() XBannerPrinter XAnyLogger XBasicContextLogger XBasicLogger XFormatLogger // contains filtered or unexported methods }
XLogger mainly implemented by Uber zap logger.
zap(), timeEncoder(), levelEncoder(), writeSyncer(), levelEnablerFunc(), outEncoder() are used to create child logger which will redefine the zapcore.Core.
ErrorStack is used to print all errors throws stacks. Instead of using zap default error stack, it can print the error stack in JSON format. It is easy for us to use fluentd, fluentbit or other log aggregator to parse the error stack, then display them in elastic search or other tools.
The interface methods with context is used to add more additional fields to the log. We can pass like trace ID, service name, etc. To do the log trace.
Log format is not recommended, because it is low performance.
func NewXLogger ¶
func NewXLogger(opts ...XLoggerOption) XLogger
type XLoggerOption ¶
type XLoggerOption func(*loggerCfg) error
func WithXLoggerContext ¶
func WithXLoggerContext(ctx context.Context) XLoggerOption
func WithXLoggerContextFieldExtract ¶
func WithXLoggerContextFieldExtract(field string, mapTo ...string) XLoggerOption
func WithXLoggerEncoder ¶
func WithXLoggerEncoder(logEnc logEncoderType) XLoggerOption
func WithXLoggerFileWriter ¶
func WithXLoggerFileWriter(coreCfg *FileCoreConfig) XLoggerOption
func WithXLoggerLevel ¶
func WithXLoggerLevel(lvl logLevel) XLoggerOption
func WithXLoggerLevelEncoder ¶
func WithXLoggerLevelEncoder(lvlEnc zapcore.LevelEncoder) XLoggerOption
func WithXLoggerStdOutWriter ¶
func WithXLoggerStdOutWriter() XLoggerOption
func WithXLoggerTimeEncoder ¶
func WithXLoggerTimeEncoder(tsEnc zapcore.TimeEncoder) XLoggerOption