package
0.0.0-20240528160250-7f1e80ad4de7
Repository: https://github.com/sql668/go-toolkit.git
Documentation: pkg.go.dev

# README

Logger

Usage

Structured logging

logger := logger.NewStdLogger(os.Stdout)
// fields & valuer
logger = log.With(logger,
    "service.name", "hellworld",
    "service.version", "v1.0.0",
    "ts", log.DefaultTimestamp,
    "caller", log.DefaultCaller,
)
logger.Log(log.LevelInfo, "key", "value")

// helper
helper := log.NewHelper(logger)
helper.Log(log.LevelInfo, "key", "value")
helper.Info("info message")
helper.Infof("info %s", "message")
helper.Infow("key", "value")

// filter
log := log.NewHelper(log.NewFilter(logger,
	log.FilterLevel(log.LevelInfo),
	log.FilterKey("foo"),
	log.FilterValue("bar"),
	log.FilterFunc(customFilter),
))
log.Debug("debug log")
log.Info("info log")
log.Warn("warn log")
log.Error("warn log")

Third party log library

zap

go get -u github.com/go-kratos/kratos/contrib/log/zap/v2

logrus

go get -u github.com/go-kratos/kratos/contrib/log/logrus/v2

fluent

go get -u github.com/go-kratos/kratos/contrib/log/fluent/v2

aliyun

go get -u github.com/go-kratos/kratos/contrib/log/aliyun/v2

# Functions

Caller returns a Valuer that returns a pkg/file:line description of the caller.
Context with context logger.
Debug logs a message at debug level.
Debugf logs a message at debug level.
Debugw logs a message at debug level.
Error logs a message at error level.
Errorf logs a message at error level.
Errorw logs a message at error level.
Fatal logs a message at fatal level.
Fatalf logs a message at fatal level.
Fatalw logs a message at fatal level.
FilterFunc 使用自定义的函数来对日志进行处理,keyvals里为key和对应的value,按照奇偶进行读取即可.
FilterKey 按照key过滤,这些key的值会被***遮蔽.
FilterLevel 按照日志等级过滤,低于该等级的日志将不会被输出.
FilterValue 按照value过滤,匹配的值会被***遮蔽.
GetLogger returns global logger appliance as logger in current process.
Info logs a message at info level.
Infof logs a message at info level.
Infow logs a message at info level.
Log Print log by level and keyvals.
NewFilter new a logger filter.
NewHelper new a logger helper.
NewStdLogger new a logger with writer.
NewWriter return a writer wrapper.
ParseLevel 从字符串level中得到 logger level.
SetLogger should be called before any other log call.
Timestamp returns a timestamp Valuer with a custom time format.
Trace logs a message at trace level.
Tracef logs a message at trace level.
Tracew logs a message at trace level.
Value return the function value.
Warn logs a message at warn level.
Warnf logs a message at warnf level.
Warnw logs a message at warnf level.
With logger.With方法会返回一个新的Logger,把参数的Valuer绑上去。 logger = logger.With(logger, "ts", logger.DefaultTimestamp, "caller", logger.DefaultCaller).
WithContext returns a shallow copy of l with its context changed to ctx.
WithMessageKey with message key.
WithSprint 自定义输出函数.
WithSprintf 自定义格式化输出函数.
WithWriteMessageKey set writerWrapper helper message key.
WithWriterLevel set writerWrapper level.

# Constants

DebugLevel 主要用于开发过程中打印运行信息.
ErrorLevel 打印错误和异常信息.
FatalLevel 重大错误,出现这种级别的事件会导致程序不能继续运行.
InfoLevel 用于输出程序运行的重要信息或感兴趣的信息,为默认级别.
LevelKey is logger level key.
TraceLevel 日志级别很低,很少使用.
WarnLevel 表明会出现潜在错误的情形.

# Variables

DefaultCaller 打印出调用日志方法文件名和行号,例如 caller=logger/log_test.go:11.
No description provided by the author
DefaultMessageKey default message key.
DefaultTimestamp 打印时间戳.

# Structs

Filter is a logger filter.
Helper is a logger helper.

# Interfaces

No description provided by the author

# Type aliases

* h := NewHelper( NewFilter(logger, // 等级过滤 FilterLevel(log.LevelError), // 按key遮蔽 FilterKey("username"), // 按value遮蔽 FilterValue("hello"), // 自定义过滤函数 FilterFunc( func (level Level, keyvals ...interface{}) bool { if level == LevelWarn { return true } for i := 0; i < len(keyvals); i++ { if keyvals[i] == "password" { keyvals[i+1] = fuzzyStr } } return false } ), ), ) h.Log(log.LevelDebug, "msg", "test debug") h.Info("hello") h.Infow("password", "123456") h.Infow("username", "kratos") h.Warn("warn log") */ FilterOption is filter option.
No description provided by the author
Option is Helper option.
No description provided by the author
No description provided by the author