logger

package
v0.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2026 License: None detected not legal advice Imports: 0 Imported by: 0

Documentation

Overview

Package logger 实现轻量级结构化日志系统.

输出格式:2024-01-15T10:30:00Z [INFO] message key1=val1 key2=val2 日志级别:DEBUG, INFO, WARN, ERROR 支持上下文字段(请求 ID,会话 ID,工具名等) 默认输出到 stderr,不引入外部依赖.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Debug

func Debug(msg string, fields ...Field)

Debug 通过全局 logger 输出 DEBUG 日志.

func Error

func Error(msg string, fields ...Field)

Error 通过全局 logger 输出 ERROR 日志.

func Info

func Info(msg string, fields ...Field)

Info 通过全局 logger 输出 INFO 日志.

func SetDefault

func SetDefault(l Logger)

SetDefault 替换全局默认 logger.

func SetLevel

func SetLevel(level Level)

SetLevel 设置全局默认 logger 的日志级别. 仅当全局 logger 是默认实现时有效.

func Warn

func Warn(msg string, fields ...Field)

Warn 通过全局 logger 输出 WARN 日志.

Types

type Field

type Field struct {
	Key   string
	Value string
	// contains filtered or unexported fields
}

Field 是一个结构化日志字段.

func Bool

func Bool(key string, value bool) Field

Bool 创建布尔字段.

func Duration

func Duration(key string, value time.Duration) Field

Duration 创建时间段字段.

func Err

func Err(key string, err error) Field

Err 创建错误字段.

func Float

func Float(key string, value float64) Field

Float 创建浮点数字段.

func Int

func Int(key string, value int) Field

Int 创建整数字段.

func Int64

func Int64(key string, value int64) Field

Int64 创建 int64 字段.

func Sensitive

func Sensitive(key, value string) Field

Sensitive 创建一个敏感字段,写入时自动脱敏.

升华改进(ELEVATED): 早期方案 logger 无凭据脱敏--API key,token,secret 明文写入日志. 攻击场景:日志聚合系统(Splunk/ELK)存储明文凭据,泄露风险极高. Sensitive 字段自动脱敏,保留键名便于排查,只隐藏值. 替代方案:<在消费层统一过滤 key=value> - 否决:日志可能在写入前就已泄露到日志系统.

func String

func String(key, value string) Field

String 创建字符串字段.

type Level

type Level int

Level 是日志级别.

const (
	LevelDebug Level = iota
	LevelInfo
	LevelWarn
	LevelError
)

func ParseLevel

func ParseLevel(s string) Level

ParseLevel 从字符串解析日志级别.

func (Level) String

func (l Level) String() string

String 返回日志级别的字符串表示.

type Logger

type Logger interface {
	// Debug 输出 DEBUG 级别日志.
	Debug(msg string, fields ...Field)
	// Info 输出 INFO 级别日志.
	Info(msg string, fields ...Field)
	// Warn 输出 WARN 级别日志.
	Warn(msg string, fields ...Field)
	// Error 输出 ERROR 级别日志.
	Error(msg string, fields ...Field)
	// With 创建带默认字段的子 logger.
	// 子 logger 每次输出时会自动包含这些字段.
	With(fields ...Field) Logger
	// Level 返回当前日志级别.
	GetLevel() Level
}

Logger 是结构化日志接口.

func Default

func Default() Logger

Default 返回全局默认 logger.

func New

func New(output io.Writer, level Level) Logger

New 创建一个新的 Logger,输出到指定的 writer.

Jump to

Keyboard shortcuts

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