logrusKit

package
v2.1.6 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultTextFormatter = NewTextFormatter("")
)

Functions

func DisableQuote

func DisableQuote(logger *logrus.Logger)

DisableQuote

PS: 输出中存在 换行字符\n 的话,只有禁掉双引号才会生效.

func DisposeLogger

func DisposeLogger(logger *logrus.Logger) error

DisposeLogger 释放资源(主要针对文件日志)

func EnableQuote

func EnableQuote(logger *logrus.Logger)

func MustSetUp

func MustSetUp(config *Config)

func NewFileLogger

func NewFileLogger(filePath string, formatter logrus.Formatter, level logrus.Level, toConsoleFlag bool) (*logrus.Logger, error)

NewFileLogger

PS: 如果 logger.Out 被释放后继续调用 logger 进行输出,会失败(e.g. 控制台os.Stderr有输出: Failed to write to log, write /Users/richelieu/Downloads/a.txt: file already closed).

@param filePath 内部会做处理:

(1) 会尝试创建父级目录
(2) 文件不存在,会自动创建
(3) 文件存在:是个文件,追加在最后;是个目录,返回error

@param formatter 可以为nil,此时将采用默认值 @param toConsoleFlag true: 输出到日志文件的同时,也输出到控制台; false: 只输出到文件日志

func NewLogger

func NewLogger(options ...LoggerOption) *logrus.Logger

NewLogger

PS: (1) 如果希望 输出到文件 且 rotatable,可以使用 WithWriter(),详见下例.

@param options 可以什么都不配置(此时输出到控制台)

e.g.

writer, err := ioKit.NewLumberjackWriteCloser(path)
// process err
logger := NewLogger(WithWriter(writer))

func NewTextFormatter

func NewTextFormatter(timestampFormat string) *logrus.TextFormatter

NewTextFormatter

PS: 外部在调用此方法后,建议调用: Logger.SetReportCaller(true)!!!

@param timestampFormat 可以为""(将采用默认值)

e.g. 日志输出 time=2023-03-23 16:46:23.398+08:00 level=info msg=[CHIMERA, PROCESS] pid: [8579]. func=PrintBasicDetails(logrusKit/basicDetails.go:17) time=2023-03-23 16:46:23.398+08:00 level=info msg=[CHIMERA, OS] os: [darwin]. func=PrintBasicDetails(logrusKit/basicDetails.go:20) time=2023-03-23 16:46:23.398+08:00 level=info msg=[CHIMERA, OS] arch: [arm64]. func=PrintBasicDetails(logrusKit/basicDetails.go:21)

func ParseLevel

func ParseLevel(str string) (logrus.Level, error)

ParseLevel string => logrus.Level

func PrintBasicDetails

func PrintBasicDetails()

PrintBasicDetails 输出服务器的基本信息(以便于甩锅)

func SetLevel

func SetLevel(logger *logrus.Logger, level logrus.Level)

func SetUp

func SetUp(config *Config) (err error)

SetUp

@param config 可以为nil

Types

type Config

type Config struct {
	Level      string `json:"level,default=debug"`
	PrintBasic bool   `json:"printBasic,default=false"`
}

type LoggerOption

type LoggerOption func(opts *loggerOptions)

func WithFormatter

func WithFormatter(formatter logrus.Formatter) LoggerOption

func WithLevel

func WithLevel(level logrus.Level) LoggerOption

func WithReportCaller

func WithReportCaller(reportCaller bool) LoggerOption

func WithWriter

func WithWriter(writer io.Writer) LoggerOption

Jump to

Keyboard shortcuts

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