logpkg

package
v0.2.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2024 License: Apache-2.0 Imports: 12 Imported by: 2

Documentation

Index

Examples

Constants

View Source
const (
	// DefaultCallerSkip 日志 runtime caller skip
	DefaultCallerSkip = 3
	// DefaultCallerValuer log.With 之 log.Caller
	DefaultCallerValuer = 4
)
View Source
const (
	DefaultRotationStorageAge = time.Hour * 24 * 30 // 30天
	DefaultRotationSize       = 50 << 20            // 50M

)

轮转日志参数

Variables

View Source
var (
	// CallerSkipForMiddleware 中间件日志
	CallerSkipForMiddleware = DefaultCallerSkip
	// CallerSkipForLogger 基础日志
	CallerSkipForLogger = DefaultCallerSkip + 1
	// CallerSkipForHelper 日志助手
	CallerSkipForHelper = DefaultCallerSkip + 2
)

Functions

func Debug

func Debug(a ...interface{})

Debug logs a message at debug level.

func DebugWithContext

func DebugWithContext(ctx context.Context, a ...interface{})

DebugWithContext logs a message at debug level.

func Debugf

func Debugf(format string, a ...interface{})

Debugf logs a message at debug level.

func DebugfWithContext

func DebugfWithContext(ctx context.Context, format string, a ...interface{})

DebugfWithContext logs a message at debug level.

func Debugw

func Debugw(keyvals ...interface{})

Debugw logs a message at debug level.

func DebugwWithContext

func DebugwWithContext(ctx context.Context, keyvals ...interface{})

DebugwWithContext logs a message at debug level.

func DefaultLoggerKey

func DefaultLoggerKey() map[LoggerKey]string

DefaultLoggerKey 日志消息key

func Error

func Error(a ...interface{})

Error logs a message at error level.

func ErrorWithContext

func ErrorWithContext(ctx context.Context, a ...interface{})

ErrorWithContext logs a message at error level.

func Errorf

func Errorf(format string, a ...interface{})

Errorf logs a message at error level.

func ErrorfWithContext

func ErrorfWithContext(ctx context.Context, format string, a ...interface{})

ErrorfWithContext logs a message at error level.

func Errorw

func Errorw(keyvals ...interface{})

Errorw logs a message at error level.

func ErrorwWithContext

func ErrorwWithContext(ctx context.Context, keyvals ...interface{})

ErrorwWithContext logs a message at error level.

func Fatal

func Fatal(a ...interface{})

Fatal logs a message at fatal level.

func FatalWithContext

func FatalWithContext(ctx context.Context, a ...interface{})

FatalWithContext logs a message at fatal level.

func Fatalf

func Fatalf(format string, a ...interface{})

Fatalf logs a message at fatal level.

func FatalfWithContext

func FatalfWithContext(ctx context.Context, format string, a ...interface{})

FatalfWithContext logs a message at fatal level.

func Fatalw

func Fatalw(keyvals ...interface{})

Fatalw logs a message at fatal level.

func FatalwWithContext

func FatalwWithContext(ctx context.Context, keyvals ...interface{})

FatalwWithContext logs a message at fatal level.

func Info

func Info(a ...interface{})

Info logs a message at info level.

func InfoWithContext

func InfoWithContext(ctx context.Context, a ...interface{})

InfoWithContext logs a message at info level.

func Infof

func Infof(format string, a ...interface{})

Infof logs a message at info level.

func InfofWithContext

func InfofWithContext(ctx context.Context, format string, a ...interface{})

InfofWithContext logs a message at info level.

func Infow

func Infow(keyvals ...interface{})

Infow logs a message at info level.

func InfowWithContext

func InfowWithContext(ctx context.Context, keyvals ...interface{})

InfowWithContext logs a message at info level.

func Log

func Log(level log.Level, keyvals ...interface{})

Log Print log by level and keyvals.

func LogWithContext

func LogWithContext(ctx context.Context, level log.Level, keyvals ...interface{})

LogWithContext Print log by level and keyvals.

func NewDummyLogger

func NewDummyLogger() (log.Logger, error)

NewDummyLogger 假啊日志手柄

func NewMultiLogger

func NewMultiLogger(logs ...log.Logger) log.Logger

NewMultiLogger wraps multi logger.

Example
// 查看 TestNewMultiLogger(nil)
// std logger
stdLoggerConfig := &ConfigStd{
	Level:      log.LevelDebug,
	CallerSkip: DefaultCallerSkip + 1,
}
stdLogger, err := NewStdLogger(stdLoggerConfig)
if err != nil {
	panic(err)
}
defer func() { _ = stdLogger.Close() }()

// file logger
fileLoggerConfig := &ConfigFile{
	Level:      log.LevelDebug,
	CallerSkip: DefaultCallerSkip + 1,
}
fileLogger, err := NewFileLogger(fileLoggerConfig)
if err != nil {
	panic(err)
}
defer func() { _ = fileLogger.Close() }()

logger := NewMultiLogger(stdLogger, fileLogger)
logHandler := log.NewHelper(logger)
logHandler.Error("error")
Output:

func NewNopLogger

func NewNopLogger() log.Logger

NewNopLogger ...

func ParseLevel

func ParseLevel(s string) log.Level

ParseLevel 日志级别

func Print

func Print(a ...interface{})

Print logs a message at info level.

func Printf

func Printf(format string, a ...interface{})

Printf logs a message at info level.

func Println

func Println(a ...interface{})

Println logs a message at info level.

func Printw

func Printw(keyvals ...interface{})

Printw logs a message at info level.

func SetZapLoggerKeys

func SetZapLoggerKeys(encoderConfig *zapcore.EncoderConfig, loggerKeys map[LoggerKey]string)

SetZapLoggerKeys 设置日志key

func Setup

func Setup(logger log.Logger)

Setup 启动 @Param loggers 请注意 ConfigStd.CallerSkip 的值 @Param loggers 请注意 ConfigFile.CallerSkip 的值

此处 CallerSkip = logutil.DefaultCallerSkip + 2

func ToZapLevel

func ToZapLevel(lv log.Level) zapcore.Level

ToZapLevel .

func Warn

func Warn(a ...interface{})

Warn logs a message at warn level.

func WarnWithContext

func WarnWithContext(ctx context.Context, a ...interface{})

WarnWithContext logs a message at warn level.

func Warnf

func Warnf(format string, a ...interface{})

Warnf logs a message at warnf level.

func WarnfWithContext

func WarnfWithContext(ctx context.Context, format string, a ...interface{})

WarnfWithContext logs a message at warnf level.

func Warnw

func Warnw(keyvals ...interface{})

Warnw logs a message at warnf level.

func WarnwWithContext

func WarnwWithContext(ctx context.Context, keyvals ...interface{})

WarnwWithContext logs a message at warnf level.

Types

type AsyncWriter

type AsyncWriter struct {
	// contains filtered or unexported fields
}

AsyncWriter ...

func NewAsyncWriter

func NewAsyncWriter(writer io.Writer, size int) *AsyncWriter

NewAsyncWriter ...

func (*AsyncWriter) Close

func (w *AsyncWriter) Close()

func (*AsyncWriter) Write

func (w *AsyncWriter) Write(p []byte) (n int, err error)

Write ...

type ConfigFile

type ConfigFile struct {
	// Level 日志级别
	Level log.Level
	// CallerSkip 日志 runtime caller skips
	CallerSkip int

	// 存储位置
	// Dir 文件夹
	Dir string
	// Filename 文件名(默认:${filename}_app.%Y%m%d.log)
	Filename string

	// 轮询规则:默认为:RotateTime
	// RotateTime 轮询规则:n久(默认:86400s # 86400s = 1天)
	RotateTime time.Duration
	// RotateSize 轮询规则:按文件大小RotateSize(默认:52428800 # 50<<20 = 50M)
	RotateSize int64

	// 存储规则:默认为:StorageAge
	// StorageAge 存储:n久(默认:30天)
	StorageAge time.Duration
	// StorageCounter 存储:n个(默认:10086个)
	StorageCounter uint
}

ConfigFile 输出到文件

type ConfigStd

type ConfigStd struct {
	// Level 日志级别
	Level log.Level
	// CallerSkip 日志 runtime caller skips
	CallerSkip     int
	UseJSONEncoder bool
}

ConfigStd 标准输出

type File

type File struct {
	// contains filtered or unexported fields
}

File 输出到文件

func NewFileLogger

func NewFileLogger(conf *ConfigFile, opts ...Option) (*File, error)

NewFileLogger 输出到文件

Example
// 查看 TestNewFileLogger(nil)
// file logger
fileLoggerConfig := &ConfigFile{
	Level: log.LevelDebug,
	// CallerSkip = DefaultCallerSkip
	CallerSkip: DefaultCallerSkip,

	Dir:      "./../bin/",
	Filename: "rotation",

	//RotateTime: time.Second * 1,
	RotateSize: 50 << 20, // 50M : 50 << 20

	StorageCounter: 2,
	//StorageAge: time.Hour,
}
fileLogger, err := NewFileLogger(fileLoggerConfig)
if err != nil {
	panic(err)
}
defer func() { _ = fileLogger.Close() }()

logHandler := log.NewHelper(fileLogger)
logHandler.Error("error")
Output:

func (*File) Close

func (s *File) Close() error

Close zap.Logger.Sync

func (*File) Log

func (s *File) Log(level log.Level, keyvals ...interface{}) (err error)

Log .

type LoggerKey

type LoggerKey string

LoggerKey 日志消息key;例:time=2022-03-17T20:11:32.031, msg=testing

const (
	// LoggerKeyMessage zapcore.EncoderConfig keys
	LoggerKeyMessage    LoggerKey = "msg"
	LoggerKeyLevel      LoggerKey = "level"
	LoggerKeyTime       LoggerKey = "time"
	LoggerKeyName       LoggerKey = "name"
	LoggerKeyCaller     LoggerKey = "caller"
	LoggerKeyFunction   LoggerKey = "func"
	LoggerKeyStacktrace LoggerKey = "stack"

	// DefaultTimeFormat 日志时间格式
	DefaultTimeFormat = timepkg.YmdHmsMLogger
)

func (LoggerKey) Value

func (l LoggerKey) Value() string

Value 值

type MultiLogger

type MultiLogger struct {
	// contains filtered or unexported fields
}

MultiLogger 多日志

func (*MultiLogger) Log

func (s *MultiLogger) Log(level log.Level, keyvals ...interface{}) error

Log ...

type Option

type Option func(*options)

Option is config option.

func WithFilenameSuffix

func WithFilenameSuffix(suffix string) Option

WithFilenameSuffix 文件名后缀

func WithLoggerKey

func WithLoggerKey(keys map[LoggerKey]string) Option

WithLoggerKey with config writer.

func WithTimeFormat

func WithTimeFormat(timeFormat string) Option

WithTimeFormat 时间格式 DefaultTimeFormat "2006-01-02T15:04:05.999"

func WithWriter

func WithWriter(writer io.Writer) Option

WithWriter with config writer.

type Std

type Std struct {
	// contains filtered or unexported fields
}

Std 标准输出

func NewStdLogger

func NewStdLogger(conf *ConfigStd) (*Std, error)

NewStdLogger 输出到控制台

Example
// 查看 TestNewStdLogger(nil)
// std logger
stdLoggerConfig := &ConfigStd{
	Level: log.LevelDebug,
	// CallerSkip = DefaultCallerSkip
	CallerSkip: DefaultCallerSkip,
}
stdLogger, err := NewStdLogger(stdLoggerConfig)
if err != nil {
	panic(err)
}
defer func() { _ = stdLogger.Close() }()

logHandler := log.NewHelper(stdLogger)
logHandler.Error("error")
Output:

func (*Std) Close

func (s *Std) Close() error

Close zap.Logger.Sync

func (*Std) InitLogger

func (s *Std) InitLogger(conf *ConfigStd, opts ...Option) (err error)

InitLogger .

func (*Std) Log

func (s *Std) Log(level log.Level, keyvals ...interface{}) (err error)

Log .

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL