log

package
v0.0.13 Latest Latest
Warning

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

Go to latest
Published: May 22, 2025 License: MIT Imports: 9 Imported by: 1

README

log

简介

log 包提供了一个统一的日志接口和多种日志实现,支持结构化日志记录、多种输出格式和灵活的配置选项。该包设计用于满足不同场景下的日志需求,从简单的控制台输出到复杂的生产环境日志记录都能胜任。

主要特性
  • 统一的日志接口,支持多种日志后端(标准库、Logrus)
  • 支持结构化日志记录,方便日志分析和处理
  • 支持多个日志级别(Debug、Info、Warn、Error、Fatal)
  • 支持文件输出和标准输出
  • 支持日志文件自动滚动和保留期限设置
  • 支持 JSON 和文本两种输出格式
  • 支持字段注入和链式调用
  • 线程安全的全局日志实例管理
  • 完整的单元测试覆盖
设计理念

该包的设计遵循以下原则:

  1. 统一接口:通过 Logger 接口定义统一的日志行为,使不同的日志实现可以无缝切换。

  2. 可扩展性:采用接口设计和函数式配置,方便扩展新的日志实现和配置选项。

  3. 易用性:提供简单直观的 API,支持链式调用,使日志记录更加便捷。

  4. 灵活性:支持多种日志格式和输出方式,满足不同场景的需求。

  5. 性能:通过级别控制和格式优化,确保日志记录的性能开销最小化。

安装

前置条件
  • Go 版本要求:>= 1.16
  • 依赖要求:
    • github.com/sirupsen/logrus v1.8.1
    • github.com/lestrrat-go/file-rotatelogs v2.4.0
安装命令
go get -u github.com/fsyyft-go/kit/log

快速开始

基础用法
// 使用默认配置初始化日志
if err := log.InitLogger(); err != nil {
    panic(err)
}

// 记录不同级别的日志
log.Info("应用启动")
log.WithField("user", "admin").Info("用户登录")
log.Error("发生错误")
配置选项
// 使用自定义配置初始化日志
if err := log.InitLogger(
    log.WithLogType(log.LogTypeLogrus),
    log.WithLevel(log.DebugLevel),
    log.WithOutput("/var/log/app.log"),
    log.WithEnableRotate(true),
    log.WithRotateTime(time.Hour * 24),
    log.WithMaxAge(time.Hour * 24 * 7),
); err != nil {
    panic(err)
}

详细指南

核心概念
  1. 日志级别:日志分为 Debug、Info、Warn、Error、Fatal 五个级别,级别越高表示日志越重要。

  2. 结构化字段:支持添加键值对形式的结构化信息,方便日志分析。

  3. 日志滚动:支持按时间自动滚动日志文件,并可设置日志保留时间。

常见用例
1. 使用结构化字段记录日志
logger.WithFields(map[string]interface{}{
    "user_id": "12345",
    "action": "login",
    "status": "success",
}).Info("用户登录成功")
2. 配置日志滚动
if err := log.InitLogger(
    log.WithLogType(log.LogTypeLogrus),
    log.WithOutput("/var/log/app.log"),
    log.WithEnableRotate(true),
    log.WithRotateTime(time.Hour * 24),  // 每天滚动
    log.WithMaxAge(time.Hour * 24 * 7),  // 保留7天
); err != nil {
    panic(err)
}
最佳实践
  • 合理设置日志级别,开发环境可使用 Debug 级别,生产环境建议使用 Info 级别
  • 使用结构化字段记录关键信息,方便后续分析
  • 在生产环境中启用日志滚动,防止日志文件过大
  • 使用全局日志实例时注意并发安全
  • 错误日志应包含足够的上下文信息

API 文档

主要类型
// Logger 接口定义了所有日志操作
type Logger interface {
    SetLevel(level Level)
    GetLevel() Level
    Debug(args ...interface{})
    Info(args ...interface{})
    Warn(args ...interface{})
    Error(args ...interface{})
    Fatal(args ...interface{})
    WithField(key string, value interface{}) Logger
    WithFields(fields map[string]interface{}) Logger
}
关键函数
InitLogger

初始化全局日志实例。

func InitLogger(options ...Option) error

示例:

err := log.InitLogger(
    log.WithLogType(log.LogTypeLogrus),
    log.WithLevel(log.InfoLevel),
)
NewLogger

创建新的日志实例。

func NewLogger(options ...Option) (Logger, error)

示例:

logger, err := log.NewLogger(
    log.WithLogType(log.LogTypeStd),
    log.WithOutput("app.log"),
)
错误处理
  • 所有可能失败的操作都会返回 error
  • 日志初始化失败会返回具体的错误原因
  • Fatal 级别的日志会导致程序以状态码 1 退出

性能指标

操作 性能指标 说明
普通日志写入 O(1) 内存中的操作,性能开销很小
文件日志写入 O(1) 取决于系统 IO 性能
结构化字段 O(n) n 为字段数量

测试覆盖率

覆盖率
log >90%

调试指南

日志级别
  • Debug: 调试信息,用于开发和问题诊断
  • Info: 普通信息,记录正常的操作流程
  • Warn: 警告信息,表示可能的问题
  • Error: 错误信息,表示操作失败
  • Fatal: 致命错误,记录后程序会退出
常见问题排查
日志文件无法创建
  • 检查目录权限
  • 确保目录路径存在
  • 验证文件名格式是否正确
日志级别不正确
  • 检查 InitLogger 时的级别设置
  • 确认是否调用了 SetLevel 修改了级别
  • 验证日志调用使用了正确的方法

相关文档

贡献指南

我们欢迎任何形式的贡献,包括但不限于:

  • 报告问题
  • 提交功能建议
  • 提交代码改进
  • 完善文档

请参考我们的贡献指南了解详细信息。

许可证

本项目采用 MIT 许可证。查看 LICENSE 文件了解更多信息。

Documentation

Overview

Package log 提供了一个统一的日志接口和多种日志实现。

主要特性:

  • 支持多种日志后端(标准输出、Logrus)
  • 提供统一的日志接口
  • 支持结构化日志记录
  • 支持多个日志级别
  • 支持文件和标准输出
  • 支持函数式配置选项
  • 支持日志文件轮转
  • 支持日志格式化(文本/JSON)

日志级别:

  • DebugLevel:调试信息,仅在开发环境使用
  • InfoLevel:正常操作信息,用于跟踪应用状态
  • WarnLevel:警告信息,表示潜在问题
  • ErrorLevel:错误信息,表示操作失败
  • FatalLevel:致命错误,记录后程序退出

基本使用:

// 使用默认配置初始化日志
if err := log.InitLogger(); err != nil {
    panic(err)
}

// 使用自定义配置初始化日志
if err := log.InitLogger(
    log.WithLogType(log.LogTypeLogrus),
    log.WithLevel(log.DebugLevel),
    log.WithOutput("/var/log/app.log"),
    log.WithFormatType(log.JSONFormat),
); err != nil {
    panic(err)
}

// 记录不同级别的日志
log.Debug("调试信息")
log.Info("正常信息")
log.Warn("警告信息")
log.Error("错误信息")

// 使用结构化日志
log.WithField("user", "admin").Info("用户登录")
log.WithFields(map[string]interface{}{
    "user":   "admin",
    "action": "login",
    "time":   time.Now(),
}).Info("用户操作")

日志轮转:

// 启用日志轮转
if err := log.InitLogger(
    log.WithOutput("/var/log/app.log"),
    log.WithEnableRotate(true),
    log.WithRotateTime(24 * time.Hour),
    log.WithMaxAge(7 * 24 * time.Hour),
); err != nil {
    panic(err)
}

独立日志实例:

// 创建独立的日志实例
logger, err := log.NewLogger(
    log.WithLogType(log.LogTypeStd),
    log.WithLevel(log.DebugLevel),
)
if err != nil {
    panic(err)
}
defer logger.Close()

// 使用独立实例记录日志
logger.Info("使用独立的日志实例")

更多示例请参考 example/log 目录。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Debug

func Debug(args ...interface{})

Debug 使用全局日志实例记录调试级别的日志。

参数:

  • args:要记录的内容,支持任意类型的值。

func Debugf

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

Debugf 使用全局日志实例记录格式化的调试级别日志。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func Error

func Error(args ...interface{})

Error 使用全局日志实例记录错误级别的日志。

参数:

  • args:要记录的内容,支持任意类型的值。

func Errorf

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

Errorf 使用全局日志实例记录格式化的错误级别日志。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func Fatal

func Fatal(args ...interface{})

Fatal 使用全局日志实例记录致命错误级别的日志。 记录日志后会导致程序退出。

参数:

  • args:要记录的内容,支持任意类型的值。

func Fatalf

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

Fatalf 使用全局日志实例记录格式化的致命错误级别日志。 记录日志后会导致程序退出。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func Info

func Info(args ...interface{})

Info 使用全局日志实例记录信息级别的日志。

参数:

  • args:要记录的内容,支持任意类型的值。

func Infof

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

Infof 使用全局日志实例记录格式化的信息级别日志。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func InitLogger

func InitLogger(options ...Option) error

InitLogger 初始化全局日志实例。 使用可选的配置选项来配置日志行为。 如果没有提供任何选项,将使用默认配置:

  • 日志类型:LogTypeStd
  • 日志级别:InfoLevel
  • 输出路径:标准输出

参数:

  • options:可选的配置选项,用于定制日志行为。

返回值:

  • error:返回初始化过程中可能发生的错误。

func SetLevel

func SetLevel(level Level)

SetLevel 设置全局日志级别。

参数:

  • level:要设置的日志级别。

func SetLogger

func SetLogger(logger Logger)

SetLogger 设置全局日志实例。

参数:

  • logger:要设置为全局实例的日志记录器。

func Warn

func Warn(args ...interface{})

Warn 使用全局日志实例记录警告级别的日志。

参数:

  • args:要记录的内容,支持任意类型的值。

func Warnf

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

Warnf 使用全局日志实例记录格式化的警告级别日志。

参数:

  • format:格式化字符串。
  • args:格式化参数。

Types

type Level

type Level int

Level 定义了日志的级别类型,用于控制日志的输出粒度。

const (
	// DebugLevel 表示调试级别,用于记录详细的调试信息。
	// 这个级别的日志通常只在开发环境启用。
	DebugLevel Level = iota

	// InfoLevel 表示信息级别,用于记录正常的操作信息。
	// 这个级别的日志用于跟踪应用的正常运行状态。
	InfoLevel

	// WarnLevel 表示警告级别,用于记录可能的问题或异常情况。
	// 这个级别的日志表示出现了值得注意的情况,但不影响系统的正常运行。
	WarnLevel

	// ErrorLevel 表示错误级别,用于记录错误信息。
	// 这个级别的日志表示出现了影响系统正常运行的错误。
	ErrorLevel

	// FatalLevel 表示致命错误级别,记录后会导致程序退出。
	// 这个级别的日志表示出现了无法恢复的严重错误。
	FatalLevel
)

func GetLevel

func GetLevel() Level

GetLevel 获取全局日志级别。

返回值:

  • Level:返回当前设置的日志级别。

func ParseLevel

func ParseLevel(level string) (Level, error)

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

func (Level) String

func (l Level) String() string

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

type LogType

type LogType string

LogType 定义了支持的日志类型,用于在初始化时选择具体的日志实现。

const (
	// LogTypeConsole 表示控制台日志类型。
	// 这种类型的日志会直接输出到标准输出,适合开发调试使用。
	LogTypeConsole LogType = "console"

	// LogTypeStd 表示标准库日志类型。
	// 使用 Go 标准库的 log 包实现,提供基本的日志功能。
	LogTypeStd LogType = "std"

	// LogTypeLogrus 表示 Logrus 日志类型。
	// 使用 Logrus 库实现,提供丰富的日志功能,包括结构化日志、多种输出格式等。
	LogTypeLogrus LogType = "logrus"
)

type Logger

type Logger interface {
	// SetLevel 设置日志级别。
	// 只有大于或等于设置级别的日志才会被记录。
	//
	// 参数:
	//   - level:要设置的日志级别。
	SetLevel(level Level)

	// GetLevel 获取当前的日志级别。
	//
	// 返回值:
	//   - Level:当前的日志级别。
	GetLevel() Level

	// Debug 记录调试级别的日志。
	// 参数 args 支持任意类型的值,这些值会被转换为字符串并连接。
	// 调试日志应该包含有助于诊断问题的详细信息。
	//
	// 参数:
	//   - args:要记录的日志内容,支持多个参数。
	Debug(args ...interface{})

	// Debugf 记录格式化的调试级别日志。
	// 参数 format 是格式化字符串,args 是对应的参数。
	// 支持标准的 Printf 风格的格式化。
	//
	// 参数:
	//   - format:格式化字符串。
	//   - args:格式化参数。
	Debugf(format string, args ...interface{})

	// Info 记录信息级别的日志。
	// 参数 args 支持任意类型的值,这些值会被转换为字符串并连接。
	// 信息日志应该记录系统的正常运行状态。
	//
	// 参数:
	//   - args:要记录的日志内容,支持多个参数。
	Info(args ...interface{})

	// Infof 记录格式化的信息级别日志。
	// 参数 format 是格式化字符串,args 是对应的参数。
	// 支持标准的 Printf 风格的格式化。
	//
	// 参数:
	//   - format:格式化字符串。
	//   - args:格式化参数。
	Infof(format string, args ...interface{})

	// Warn 记录警告级别的日志。
	// 参数 args 支持任意类型的值,这些值会被转换为字符串并连接。
	// 警告日志应该包含可能导致问题的情况。
	//
	// 参数:
	//   - args:要记录的日志内容,支持多个参数。
	Warn(args ...interface{})

	// Warnf 记录格式化的警告级别日志。
	// 参数 format 是格式化字符串,args 是对应的参数。
	// 支持标准的 Printf 风格的格式化。
	//
	// 参数:
	//   - format:格式化字符串。
	//   - args:格式化参数。
	Warnf(format string, args ...interface{})

	// Error 记录错误级别的日志。
	// 参数 args 支持任意类型的值,这些值会被转换为字符串并连接。
	// 错误日志应该包含错误的详细信息和上下文。
	//
	// 参数:
	//   - args:要记录的日志内容,支持多个参数。
	Error(args ...interface{})

	// Errorf 记录格式化的错误级别日志。
	// 参数 format 是格式化字符串,args 是对应的参数。
	// 支持标准的 Printf 风格的格式化。
	//
	// 参数:
	//   - format:格式化字符串。
	//   - args:格式化参数。
	Errorf(format string, args ...interface{})

	// Fatal 记录致命错误级别的日志。
	// 参数 args 支持任意类型的值,这些值会被转换为字符串并连接。
	// 记录日志后会导致程序以状态码 1 退出。
	// 这个方法应该只在程序无法继续运行时使用。
	//
	// 参数:
	//   - args:要记录的日志内容,支持多个参数。
	Fatal(args ...interface{})

	// Fatalf 记录格式化的致命错误级别日志。
	// 参数 format 是格式化字符串,args 是对应的参数。
	// 支持标准的 Printf 风格的格式化。
	// 记录日志后会导致程序以状态码 1 退出。
	//
	// 参数:
	//   - format:格式化字符串。
	//   - args:格式化参数。
	Fatalf(format string, args ...interface{})

	// WithField 添加一个字段到日志上下文。
	// 参数 key 是字段名,value 是字段值。
	// 返回一个新的 Logger 实例,原实例不会被修改。
	// 这个方法用于添加结构化的上下文信息到日志中。
	//
	// 参数:
	//   - key:字段名。
	//   - value:字段值。
	//
	// 返回值:
	//   - Logger:新的日志实例。
	WithField(key string, value interface{}) Logger

	// WithFields 添加多个字段到日志上下文。
	// 参数 fields 是要添加的字段映射。
	// 返回一个新的 Logger 实例,原实例不会被修改。
	// 这个方法用于一次性添加多个结构化字段。
	//
	// 参数:
	//   - fields:字段映射。
	//
	// 返回值:
	//   - Logger:新的日志实例。
	WithFields(fields map[string]interface{}) Logger
}

Logger 定义了统一的日志接口。 该接口提供了以下功能: - 支持多个日志级别(Debug、Info、Warn、Error、Fatal)。 - 提供格式化和非格式化的日志记录方法。 - 支持结构化日志记录。 - 支持日志级别的动态调整。 - 提供上下文信息的添加和管理。

func GetLogger

func GetLogger() Logger

GetLogger 获取全局日志实例。 如果全局日志实例未设置,则返回一个默认的标准输出日志实例。

返回值:

  • Logger:返回全局日志实例。

func NewLogger added in v0.0.2

func NewLogger(options ...Option) (Logger, error)

NewLogger 创建一个新的日志实例。

参数:

  • options:可选的配置选项列表,用于自定义日志记录器的行为。

返回值:

  • Logger:返回创建的日志实例。
  • error:返回创建过程中可能发生的错误。

func NewLogrusLogger

func NewLogrusLogger(opts ...LogrusOption) (Logger, error)

NewLogrusLogger 创建一个新的 LogrusLogger 实例。

参数:

  • opts:可选的配置选项列表,用于自定义日志记录器的行为。

返回值:

  • Logger:返回创建的日志实例。
  • error:返回创建过程中可能发生的错误。

func NewStdLogger

func NewStdLogger(output string) (Logger, error)

NewStdLogger 创建一个新的 StdLogger 实例。

参数:

  • output:日志文件的路径,如果为空则输出到标准输出。

返回值:

  • Logger:返回创建的日志实例。
  • error:返回创建过程中可能发生的错误。

func WithField

func WithField(key string, value interface{}) Logger

WithField 使用全局日志实例添加一个结构化字段。

参数:

  • key:字段名。
  • value:字段值。

返回值:

  • Logger:返回一个新的 Logger 实例,包含添加的字段。

func WithFields

func WithFields(fields map[string]interface{}) Logger

WithFields 使用全局日志实例添加多个结构化字段。

参数:

  • fields:要添加的字段映射。

返回值:

  • Logger:返回一个新的 Logger 实例,包含添加的字段。

type LoggerFormatType added in v0.0.4

type LoggerFormatType string

LoggerFormatType 定义了日志输出格式的类型。

const (
	// TextFormat 表示文本格式的日志输出。
	TextFormat LoggerFormatType = "text"
	// JSONFormat 表示 JSON 格式的日志输出。
	JSONFormat LoggerFormatType = "json"
)

type LoggerOptions added in v0.0.2

type LoggerOptions struct {
	// Type 指定日志实现类型。
	Type LogType
	// Level 指定日志级别。
	Level Level
	// Output 指定日志输出路径。
	Output string
	// EnableRotate 是否启用日志滚动。
	EnableRotate bool
	// RotateTime 日志滚动时间间隔。
	RotateTime time.Duration
	// MaxAge 日志保留时间。
	MaxAge time.Duration
	// FormatType 指定日志输出格式类型。
	FormatType LoggerFormatType
}

LoggerOptions 定义了日志配置选项。 该结构体提供了以下功能: - 配置日志的基本行为。 - 控制日志的输出目标。 - 管理日志的滚动策略。 - 设置日志的格式类型。

type LogrusLogger

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

LogrusLogger 实现了 Logger 接口,使用 Logrus 作为底层日志库。 这个实现提供了丰富的日志功能,包括: - 结构化日志记录。 - 多种输出格式(文本、JSON)。 - 灵活的日志级别控制。 - 支持同时输出到多个目标。

func (*LogrusLogger) Debug

func (l *LogrusLogger) Debug(args ...interface{})

Debug 实现 Logger 接口的调试级别日志记录。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*LogrusLogger) Debugf

func (l *LogrusLogger) Debugf(format string, args ...interface{})

Debugf 实现 Logger 接口的格式化调试级别日志记录。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*LogrusLogger) Error

func (l *LogrusLogger) Error(args ...interface{})

Error 实现 Logger 接口的错误级别日志记录。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*LogrusLogger) Errorf

func (l *LogrusLogger) Errorf(format string, args ...interface{})

Errorf 实现 Logger 接口的格式化错误级别日志记录。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*LogrusLogger) Fatal

func (l *LogrusLogger) Fatal(args ...interface{})

Fatal 实现 Logger 接口的致命错误级别日志记录。 记录日志后会导致程序以状态码 1 退出。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*LogrusLogger) Fatalf

func (l *LogrusLogger) Fatalf(format string, args ...interface{})

Fatalf 实现 Logger 接口的格式化致命错误级别日志记录。 记录日志后会导致程序以状态码 1 退出。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*LogrusLogger) GetLevel

func (l *LogrusLogger) GetLevel() Level

GetLevel 实现 Logger 接口的日志级别获取方法。

返回值:

  • Level:返回当前日志记录器的日志级别。

func (*LogrusLogger) Info

func (l *LogrusLogger) Info(args ...interface{})

Info 实现 Logger 接口的信息级别日志记录。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*LogrusLogger) Infof

func (l *LogrusLogger) Infof(format string, args ...interface{})

Infof 实现 Logger 接口的格式化信息级别日志记录。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*LogrusLogger) SetLevel

func (l *LogrusLogger) SetLevel(level Level)

SetLevel 实现 Logger 接口的日志级别设置方法。

参数:

  • level:要设置的日志级别。

func (*LogrusLogger) Warn

func (l *LogrusLogger) Warn(args ...interface{})

Warn 实现 Logger 接口的警告级别日志记录。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*LogrusLogger) Warnf

func (l *LogrusLogger) Warnf(format string, args ...interface{})

Warnf 实现 Logger 接口的格式化警告级别日志记录。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*LogrusLogger) WithField

func (l *LogrusLogger) WithField(key string, value interface{}) Logger

WithField 实现 Logger 接口的单字段添加方法。

参数:

  • key:字段名。
  • value:字段值。

返回值:

  • Logger:返回一个包含新字段的新 Logger 实例。

func (*LogrusLogger) WithFields

func (l *LogrusLogger) WithFields(fields map[string]interface{}) Logger

WithFields 实现 Logger 接口的多字段添加方法。

参数:

  • fields:要添加的字段映射。

返回值:

  • Logger:返回一个包含新字段的新 Logger 实例。

type LogrusLoggerOptions added in v0.0.2

type LogrusLoggerOptions struct {
	// OutputPath 输出文件路径。
	OutputPath string
	// Formatter 日志格式化器。
	Formatter logrus.Formatter
	// Level 日志级别。
	Level logrus.Level
	// FileMode 文件权限。
	FileMode os.FileMode
	// DirMode 目录权限。
	DirMode os.FileMode
	// EnableRotate 是否启用日志滚动。
	EnableRotate bool
	// RotateTime 日志滚动时间间隔。
	RotateTime time.Duration
	// MaxAge 日志保留时间。
	MaxAge time.Duration
}

LogrusLoggerOptions 包含了 LogrusLogger 的所有配置选项。

type LogrusOption added in v0.0.2

type LogrusOption func(*LogrusLoggerOptions)

LogrusOption 定义了 LogrusLogger 的配置选项函数类型。

func WithDirMode added in v0.0.2

func WithDirMode(mode os.FileMode) LogrusOption

WithDirMode 设置日志目录权限。

参数:

  • mode:日志目录的权限模式,使用八进制表示,例如:0755。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithFileMode added in v0.0.2

func WithFileMode(mode os.FileMode) LogrusOption

WithFileMode 设置日志文件权限。

参数:

  • mode:日志文件的权限模式,使用八进制表示,例如:0666。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithFormatter added in v0.0.2

func WithFormatter(formatter logrus.Formatter) LogrusOption

WithFormatter 设置日志格式化器。

参数:

  • formatter:自定义的日志格式化器实例,用于控制日志的输出格式。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithJSONFormatter added in v0.0.4

func WithJSONFormatter(timestampFormat string, prettyPrint bool) LogrusOption

WithJSONFormatter 设置 JSON 格式化器的选项。

参数:

  • timestampFormat:时间戳的格式化模板,例如:"2006-01-02 15:04:05"。
  • prettyPrint:是否美化 JSON 输出格式,true 表示美化,false 表示单行输出。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithLogrusEnableRotate added in v0.0.2

func WithLogrusEnableRotate(enable bool) LogrusOption

WithLogrusEnableRotate 设置是否启用日志滚动。

参数:

  • enable:是否启用日志滚动功能,true 表示启用,false 表示禁用。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithLogrusLevel added in v0.0.2

func WithLogrusLevel(level Level) LogrusOption

WithLogrusLevel 设置日志级别。

参数:

  • level:日志输出的级别,可选值包括 DebugLevel、InfoLevel、WarnLevel、ErrorLevel、FatalLevel。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithLogrusMaxAge added in v0.0.2

func WithLogrusMaxAge(duration time.Duration) LogrusOption

WithLogrusMaxAge 设置日志保留时间。

参数:

  • duration:日志文件的最大保留时间,超过这个时间的日志文件会被自动删除。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithLogrusRotateTime added in v0.0.2

func WithLogrusRotateTime(duration time.Duration) LogrusOption

WithLogrusRotateTime 设置日志滚动时间间隔。

参数:

  • duration:日志滚动的时间间隔,例如:time.Hour 表示每小时滚动一次。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithOutputPath added in v0.0.2

func WithOutputPath(path string) LogrusOption

WithOutputPath 设置日志输出路径。

参数:

  • path:日志文件的输出路径,支持绝对路径和相对路径。

返回值:

  • LogrusOption:返回一个配置选项函数。

func WithTextFormatter added in v0.0.4

func WithTextFormatter(timestampFormat string, fullTimestamp bool, disableColors bool) LogrusOption

WithTextFormatter 设置文本格式化器的选项。

参数:

  • timestampFormat:时间戳的格式化模板,例如:"2006-01-02 15:04:05"。
  • fullTimestamp:是否显示完整时间戳,true 表示显示完整时间戳,false 表示显示相对时间。
  • disableColors:是否禁用控制台颜色输出,true 表示禁用颜色,false 表示启用颜色。

返回值:

  • LogrusOption:返回一个配置选项函数。

type Option added in v0.0.2

type Option func(*LoggerOptions)

Option 定义了日志配置的函数选项。

func WithEnableRotate added in v0.0.2

func WithEnableRotate(enable bool) Option

WithEnableRotate 设置是否启用日志滚动。

参数:

  • enable:是否启用日志滚动,true 表示启用,false 表示禁用。

返回值:

  • 返回一个配置选项函数,可用于配置日志实例。

func WithFormatType added in v0.0.4

func WithFormatType(formatType LoggerFormatType) Option

WithFormatType 设置日志输出格式类型。

参数:

  • formatType:日志输出格式类型,可选值包括 TextFormat、JSONFormat。

返回值:

  • 返回一个配置选项函数,可用于配置日志实例。

func WithLevel added in v0.0.2

func WithLevel(level Level) Option

WithLevel 设置日志级别。

参数:

  • level:要设置的日志级别。

返回值:

  • 返回一个配置选项函数,可用于配置日志实例。

func WithLogType added in v0.0.2

func WithLogType(logType LogType) Option

WithLogType 设置日志类型。

参数:

  • logType:要设置的日志类型。

返回值:

  • 返回一个配置选项函数,可用于配置日志实例。

func WithMaxAge added in v0.0.2

func WithMaxAge(duration time.Duration) Option

WithMaxAge 设置日志保留时间。

参数:

  • duration:日志文件的最大保留时间。

返回值:

  • 返回一个配置选项函数,可用于配置日志实例。

func WithOutput added in v0.0.2

func WithOutput(output string) Option

WithOutput 设置日志输出路径。

参数:

  • output:日志文件的输出路径,空字符串表示输出到标准输出。

返回值:

  • 返回一个配置选项函数,可用于配置日志实例。

func WithRotateTime added in v0.0.2

func WithRotateTime(duration time.Duration) Option

WithRotateTime 设置日志滚动时间间隔。

参数:

  • duration:日志滚动的时间间隔。

返回值:

  • 返回一个配置选项函数,可用于配置日志实例。

type StdLogger

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

StdLogger 实现了 Logger 接口,使用 Go 标准库的 log 包作为底层实现。 这个实现提供了基本的日志功能: - 支持不同的日志级别。 - 支持结构化字段。 - 支持文件输出。 - 支持格式化日志。

func (*StdLogger) Debug

func (l *StdLogger) Debug(args ...interface{})

Debug 实现 Logger 接口的调试级别日志记录。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*StdLogger) Debugf

func (l *StdLogger) Debugf(format string, args ...interface{})

Debugf 实现 Logger 接口的格式化调试级别日志记录。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*StdLogger) Error

func (l *StdLogger) Error(args ...interface{})

Error 实现 Logger 接口的错误级别日志记录。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*StdLogger) Errorf

func (l *StdLogger) Errorf(format string, args ...interface{})

Errorf 实现 Logger 接口的格式化错误级别日志记录。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*StdLogger) Fatal

func (l *StdLogger) Fatal(args ...interface{})

Fatal 实现 Logger 接口的致命错误级别日志记录。 记录日志后会导致程序以状态码 1 退出。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*StdLogger) Fatalf

func (l *StdLogger) Fatalf(format string, args ...interface{})

Fatalf 实现 Logger 接口的格式化致命错误级别日志记录。 记录日志后会导致程序以状态码 1 退出。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*StdLogger) GetLevel

func (l *StdLogger) GetLevel() Level

GetLevel 实现 Logger 接口的日志级别获取方法。

返回值:

  • Level:返回当前日志记录器的日志级别。

func (*StdLogger) Info

func (l *StdLogger) Info(args ...interface{})

Info 实现 Logger 接口的信息级别日志记录。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*StdLogger) Infof

func (l *StdLogger) Infof(format string, args ...interface{})

Infof 实现 Logger 接口的格式化信息级别日志记录。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*StdLogger) SetLevel

func (l *StdLogger) SetLevel(level Level)

SetLevel 实现 Logger 接口的日志级别设置方法。

参数:

  • level:要设置的日志级别。

func (*StdLogger) Warn

func (l *StdLogger) Warn(args ...interface{})

Warn 实现 Logger 接口的警告级别日志记录。

参数:

  • args:要记录的内容,支持任意类型的值。

func (*StdLogger) Warnf

func (l *StdLogger) Warnf(format string, args ...interface{})

Warnf 实现 Logger 接口的格式化警告级别日志记录。

参数:

  • format:格式化字符串。
  • args:格式化参数。

func (*StdLogger) WithField

func (l *StdLogger) WithField(key string, value interface{}) Logger

WithField 实现 Logger 接口的单字段添加方法。

参数:

  • key:字段名。
  • value:字段值。

返回值:

  • Logger:返回一个包含新字段的新 Logger 实例。

func (*StdLogger) WithFields

func (l *StdLogger) WithFields(fields map[string]interface{}) Logger

WithFields 实现 Logger 接口的多字段添加方法。

参数:

  • fields:要添加的字段映射。

返回值:

  • Logger:返回一个包含所有字段的新 Logger 实例。

Jump to

Keyboard shortcuts

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