logsdk

package
v0.0.0-...-501ba56 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LevelPanicValue = "panic"
	LevelFatalValue = "fatal"
	LevelErrorValue = "error"
	LevelWarnValue  = "warn"
	LevelInfoValue  = "info"
	LevelDebugValue = "debug"
	LevelTraceValue = "trace"
)
View Source
const (
	// LevelCount 日志等级的个数
	LevelCount = 7
)

Variables

Functions

This section is empty.

Types

type Entry

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

Entry 包含日志所需的全部中间信息并负责输出日志

func (Entry) AddCallerSkip

func (entry Entry) AddCallerSkip(n int) Entry

AddCallerSkip 增加调用 runtime.Callers 时的 skip 参数, 当通过装饰器等方式封装 Entry 导致增加调用 Entry 方法的深度时使用 AddCallerSkip 调整 skip, 直接在需要日志的地方调用 Entry 的方法时不需要 AddCallerSkip.

func (Entry) Debug

func (entry Entry) Debug(ctx context.Context, args ...any)

Debug 输出 LevelDebug 等级的日志

func (Entry) Debugf

func (entry Entry) Debugf(ctx context.Context, format string, args ...any)

Debugf 格式化输出 LevelDebug 等级的日志

func (Entry) Error

func (entry Entry) Error(ctx context.Context, args ...any)

Error 输出 LevelError 等级的日志

func (Entry) Errorf

func (entry Entry) Errorf(ctx context.Context, format string, args ...any)

Errorf 格式化输出 LevelError 等级的日志

func (Entry) Fatal

func (entry Entry) Fatal(ctx context.Context, args ...any)

Fatal 输出 LevelFatal 等级的日志并调用 Logger.Exit

func (Entry) Fatalf

func (entry Entry) Fatalf(ctx context.Context, format string, args ...any)

Fatalf 格式化输出 LevelFatal 等级的日志并调用 Logger.Exit

func (Entry) GetReportCaller

func (entry Entry) GetReportCaller() bool

GetReportCaller 获取是否收集调用记录, 默认使用 Logger 上的对应配置.

func (Entry) GetReportStack

func (entry Entry) GetReportStack() bool

GetReportStack 获取是否收集调用栈, 默认使用 Logger 上的对应配置.

func (Entry) Info

func (entry Entry) Info(ctx context.Context, args ...any)

Info 输出 LevelInfo 等级的日志

func (Entry) Infof

func (entry Entry) Infof(ctx context.Context, format string, args ...any)

Infof 格式化输出 LevelInfo 等级的日志

func (Entry) Log

func (entry Entry) Log(ctx context.Context, level Level, args ...any)

Log 输出日志

func (Entry) Logf

func (entry Entry) Logf(ctx context.Context, level Level, format string, args ...any)

Logf 格式化输出日志

func (Entry) Panic

func (entry Entry) Panic(ctx context.Context, args ...any)

Panic 输出 LevelPanic 等级的日志后执行 panic, 即使 Logger 日志等级高于 LevelPanic 也会 panic.

func (Entry) Panicf

func (entry Entry) Panicf(ctx context.Context, format string, args ...any)

Panicf 格式化输出 LevelPanic 等级的日志, 即使 Logger 日志等级高于 LevelPanic 也会 panic.

func (Entry) Trace

func (entry Entry) Trace(ctx context.Context, args ...any)

Trace 输出 LevelTrace 等级的日志

func (Entry) Tracef

func (entry Entry) Tracef(ctx context.Context, format string, args ...any)

Tracef 格式化输出 LevelTrace 等级的日志

func (Entry) Warn

func (entry Entry) Warn(ctx context.Context, args ...any)

Warn 输出 LevelWarn 等级的日志

func (Entry) Warnf

func (entry Entry) Warnf(ctx context.Context, format string, args ...any)

Warnf 格式化输出 LevelWarn 等级的日志

func (Entry) WithField

func (entry Entry) WithField(key string, value any) Entry

WithField 增加1组键值对

func (Entry) WithFields

func (entry Entry) WithFields(fields ...KV) Entry

WithFields 增加键值对

func (Entry) WithReportCaller

func (entry Entry) WithReportCaller(reportCaller bool) Entry

WithReportCaller 设置是否收集调用记录

func (Entry) WithReportStack

func (entry Entry) WithReportStack(reportStack bool) Entry

WithReportStack 设置是否收集调用栈

func (Entry) WithTime

func (entry Entry) WithTime(t time.Time) Entry

WithTime 设置日志的时间, Entry 默认使用调用 Log 等最终方法的时间作为日志的时间.

type EntryProcessor

type EntryProcessor interface {
	Process(ctx context.Context, entry ReadonlyEntry)
}

EntryProcessor 处理日志记录

type Frame

type Frame struct {
	Function string `json:"func"`
	File     string `json:"file"`
	Line     int    `json:"line"`
}

Frame 调用相关信息

func (Frame) IsValid

func (frame Frame) IsValid() bool

IsValid 表示是否有效

type KV

type KV struct {
	Key   string `json:"k"`
	Value any    `json:"v"`
}

KV 是日志记录中的键值对

func Field

func Field(key string, value any) KV

Field 返回键值对

type Level

type Level int

Level 日志等级

const (
	// LevelDisabled 表示不处理任何等级的日志,
	// 其他日志等级的值越小表示日志严重程度越高.
	LevelDisabled Level = iota - levelOffset - 1
	LevelPanic
	LevelFatal
	LevelError
	LevelWarn
	LevelInfo
	LevelDebug
	LevelTrace
)

func ParseLevel

func ParseLevel(s string) Level

ParseLevel 把 level 字符串解析成 Level, 支持的字符串: panic, fatal, error, warn, info, debug, trace, 传入不支持的字符串返回 LevelInfo.

func (Level) MarshalText

func (level Level) MarshalText() ([]byte, error)

func (Level) String

func (level Level) String() string

type Logger

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

Logger 中保存了日志所需的全局配置, 使用 Logger 处理日志.

func New

func New() *Logger

New 返回初始未经过参数调整的 Logger

func (*Logger) AddBeforeExit

func (logger *Logger) AddBeforeExit(fn ...func())

AddBeforeExit 增加 Exit 在调用 SetExit 指定的函数前执行的函数, 先增加的后执行.

func (*Logger) AddProcessor

func (logger *Logger) AddProcessor(levels []Level, processor EntryProcessor)

AddProcessor 把日志处理器增加到 Logger

func (*Logger) BeforeExit

func (logger *Logger) BeforeExit()

BeforeExit 按照先添加后执行的顺序执行 AddBeforeExit 添加的函数, AddBeforeExit 只会执行1次.

func (*Logger) Exit

func (logger *Logger) Exit(code int)

Exit 执行 BeforeExit 后退出程序, 执行的退出函数可以通过 SetExit 指定, 当没有通过 SetExit 指定退出函数时调用 os.Exit.

func (*Logger) GetCallerSkip

func (logger *Logger) GetCallerSkip() int

GetCallerSkip 获取调用 runtime.Callers 时的 skip 参数, skip 已经被偏移到从调用 Logger 相关方法处获取调用信息. 0 表示从调用 Logger 相关方法处获取调用信息.

func (*Logger) GetLevel

func (logger *Logger) GetLevel() Level

GetLevel 返回日志系统的等级, 严重程度低于返回等级的日志不会被处理.

func (*Logger) GetReportCaller

func (logger *Logger) GetReportCaller() bool

GetReportCaller 返回是否收集调用信息

func (*Logger) GetReportStack

func (logger *Logger) GetReportStack() bool

GetReportStack 返回是否收集调用栈信息

func (*Logger) GetReportStackLevel

func (logger *Logger) GetReportStackLevel() Level

GetReportStackLevel 获取自动添加调用栈对应的日志等级

func (*Logger) Reset

func (logger *Logger) Reset()

Reset 把 Logger 重置到初始状态

func (*Logger) SetCallerSkip

func (logger *Logger) SetCallerSkip(callerSkip int)

SetCallerSkip 设置调用 runtime.Callers 时的 skip 参数, skip 已经被偏移到从调用 Logger 相关方法处获取调用信息. 0 表示从调用 Logger 相关方法处获取调用信息.

func (*Logger) SetExit

func (logger *Logger) SetExit(fn func(code int))

SetExit 指定退出程序时执行的函数

func (*Logger) SetLevel

func (logger *Logger) SetLevel(level Level)

SetLevel 设置日志系统的等级

func (*Logger) SetReportCaller

func (logger *Logger) SetReportCaller(reportCaller bool)

SetReportCaller 设置是否收集调用信息

func (*Logger) SetReportStack

func (logger *Logger) SetReportStack(reportStack bool)

SetReportStack 设置是否收集调用栈信息

func (*Logger) SetReportStackLevel

func (logger *Logger) SetReportStackLevel(level Level)

SetReportStackLevel 设置日志等级小于等于 level 时自动添加调用栈

type ReadonlyEntry

type ReadonlyEntry struct {
	Caller  Frame
	Stack   []Frame
	Time    time.Time
	Message string
	Fields  []KV
	Level   Level
}

ReadonlyEntry 是日志系统收集到1条日志记录

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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