hlog

package
v1.0.11 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2026 License: BSD-3-Clause Imports: 12 Imported by: 0

Documentation

Overview

Package hlog

----------------develop info----------------

@Author Calmu
@DateTime 2026-1-6 17:00

--------------------------------------------

Package hlog

----------------develop info----------------

@Author Calmu
@DateTime 2026-1-5 10:34

--------------------------------------------

Index

Constants

This section is empty.

Variables

View Source
var (
	GlobalLoggers = make(map[string]HLogger)
)

全局logger映射,用于存储不同类型的logger

Functions

func Close added in v1.0.2

func Close()

Close 关闭所有全局logger

func InitLogger

func InitLogger(loggerType string, config LoggerConfig)

InitLogger 初始化指定类型的logger

func InitRotatingLogger

func InitRotatingLogger(loggerType string, rotateConfig RotateConfig)

InitRotatingLogger 初始化指定类型的轮转logger

func NewGormLogger

func NewGormLogger(hlogger HLogger, config *logger.Config) logger.Interface

NewGormLogger 创建一个新的GORM日志适配器

func SetLogger

func SetLogger(loggerType string, logger HLogger)

SetLogger 设置指定类型的全局logger

Types

type EncoderConfig

type EncoderConfig struct {
	TimeKey        string // 时间字段的键名,默认为 "ts"
	LevelKey       string // 级别字段的键名,默认为 "level"
	NameKey        string // 名称字段的键名,默认为 "logger"
	CallerKey      string // 调用者字段的键名,默认为 "caller"
	MessageKey     string // 消息字段的键名,默认为 "msg"
	StacktraceKey  string // 堆栈跟踪字段的键名,默认为 "stacktrace"
	LineEnding     string // 行结束符,默认为 "\n"
	EncodeLevel    string // 级别编码方式: "lowercase", "uppercase", "capital", "capitalColor", "color"
	EncodeTime     string // 时间编码方式: "iso8601", "millis", "nanos", "epoch", "rfc3339", "rfc3339nano"
	EncodeDuration string // 持续时间编码方式: "seconds", "nanos", "string"
	EncodeCaller   string // 调用者编码方式: "full", "short"
	TimeLayout     string // 自定义时间格式布局,例如 "2006-01-02 15:04:05"
	// 隐藏字段选项 - 如果设置为true,则在输出中隐藏相应字段
	HideCaller bool // 是否隐藏调用者信息
	HideLevel  bool // 是否隐藏日志级别
	HideTime   bool // 是否隐藏时间戳
	HideName   bool // 是否隐藏名称字段
}

EncoderConfig 编码器配置结构

type GormLoggerInterface

type GormLoggerInterface interface {
	LogMode(level int) GormLoggerInterface
	Info(ctx context.Context, msg string, data ...interface{})
	Warn(ctx context.Context, msg string, data ...interface{})
	Error(ctx context.Context, msg string, data ...interface{})
	Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error)
}

GormLoggerInterface GORM Logger接口定义

type HLogger

type HLogger interface {
	HLoggerBase
	Debug(msg string, fields ...zap.Field)
	Fatal(msg string, fields ...zap.Field)
	Close() error
}

func GetLogger

func GetLogger(loggerType string) HLogger

GetLogger 获取指定类型的全局logger实例

func NewRotatingLogger

func NewRotatingLogger(rotateConfig RotateConfig) (HLogger, error)

NewRotatingLogger 创建支持轮转的日志记录器

func NewZapLogger

func NewZapLogger(config LoggerConfig) (HLogger, error)

NewZapLogger 根据普通配置创建新的zap logger

type HLoggerBase

type HLoggerBase interface {
	Warn(msg string, fields ...zap.Field)
	Error(msg string, fields ...zap.Field)
	Info(msg string, fields ...zap.Field)
}

type LoggerConfig

type LoggerConfig struct {
	Level         string         // 日志级别: debug, info, warn, error, dpanic, panic, fatal
	OutputPath    []string       // 输出路径
	Encoder       string         // 编码器: json, console
	EncoderConfig *EncoderConfig // 编码器详细配置
}

LoggerConfig 日志配置结构

type RotateConfig

type RotateConfig struct {
	// 时间轮转配置
	TimeRotation string // "daily", "hourly", "minutely"

	// 大小轮转配置
	MaxSize    int64 // MB
	MaxBackups int   // 最大备份文件数
	MaxAge     int   // 保留天数
	Compress   bool  // 是否压缩

	// 基础配置
	Filename      string         // 基础文件名
	Level         string         // 日志级别
	Encoder       string         // 编码器: json, console
	EncoderConfig *EncoderConfig // 编码器详细配置
	OutputType    string         // 输出类型: file, stdout, 或两者
}

RotateConfig 定义轮转配置

Jump to

Keyboard shortcuts

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