log

package
v0.0.15 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2021 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// 默认的日志名
	DefaultHighLevelFileName = "error"
	DefaultLowLevelFileName  = "info.log"
)
View Source
const (
	// 选择 LoggerConfig.EncoderText 时使用
	EncoderTextJSON    = "json"
	EncoderTextConsole = "console"

	// 选择环境 LoggerConfig.EncoderConfigText
	EncoderConfigTextProdCustom  = "prod"
	EncoderConfigTextProdDefault = "prod_default"
	EncoderConfigTextDevCustom   = "dev"
	EncoderConfigTextDevDefault  = "dev_default"
)

Variables

View Source
var (
	BusinessLoggerMgr     *Logger
	BusinessSugaredLogger *zap.SugaredLogger
	BusinessLoggerMgrOnce sync.Once
)
View Source
var (
	// DefaultBusinessFileCfg  默认 业务 日志文件配置
	// 默认 不会根据时间删除旧的日志文件
	DefaultBusinessFileCfg = &LoggerFileConfig{
		FileName:   DefaultLowLevelFileName,
		MaxSize:    200,
		MaxBackups: 100,
		Compress:   true,
	}
	// ProdEnableStacktrace 生产环境 是否开启 高级别错误 堆栈信息记录
	ProdEnableStacktrace = true
)
View Source
var (
	// 根据不同的 LoggerConfig.EncoderText 返回不同的生成 zapcore.Encoder 的函数
	NewEncoderFuncMap = map[string]func(zapcore.EncoderConfig) zapcore.Encoder{
		EncoderTextJSON:    zapcore.NewJSONEncoder,
		EncoderTextConsole: zapcore.NewConsoleEncoder,
	}
	// 根据不同的 LoggerConfig.EncoderConfigText 返回不同的生成 zapcore.EncoderConfig 的函数
	NewEncoderConfigFuncMap = map[string]func(*Logger) (zapcore.EncoderConfig, error){
		EncoderConfigTextDevDefault:  NewEncoderConfigTextDevDefault,
		EncoderConfigTextDevCustom:   NewEncoderConfigTextDevCustom,
		EncoderConfigTextProdDefault: NewEncoderConfigTextProdDefault,
		EncoderConfigTextProdCustom:  NewEncoderConfigTextProdCustom,
	}
)

Functions

func DPanic

func DPanic(msg string, fields ...zap.Field)

func Debug

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

func Error

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

func Fatal

func Fatal(msg string, fields ...zap.Field)

func Info

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

func NewEncoderConfigTextDevCustom

func NewEncoderConfigTextDevCustom(l *Logger) (encoderConfig zapcore.EncoderConfig, err error)

func NewEncoderConfigTextDevDefault

func NewEncoderConfigTextDevDefault(l *Logger) (encoderConfig zapcore.EncoderConfig, err error)

NewEncoderConfigTextDevDefault 开发环境默认的 EncoderConfig 配置

func NewEncoderConfigTextProdCustom

func NewEncoderConfigTextProdCustom(l *Logger) (encoderConfig zapcore.EncoderConfig, err error)

func NewEncoderConfigTextProdDefault

func NewEncoderConfigTextProdDefault(l *Logger) (encoderConfig zapcore.EncoderConfig, err error)

NewEncoderConfigTextProdDefault 生产环境默认的 EncoderConfig 配置

func Panic

func Panic(msg string, fields ...zap.Field)

func SugarDPanic

func SugarDPanic(args ...interface{})

func SugarDPanicf

func SugarDPanicf(template string, args ...interface{})

func SugarDebug

func SugarDebug(args ...interface{})

func SugarDebugf

func SugarDebugf(template string, args ...interface{})

func SugarError

func SugarError(args ...interface{})

func SugarErrorf

func SugarErrorf(template string, args ...interface{})

func SugarFatal

func SugarFatal(args ...interface{})

func SugarFatalf

func SugarFatalf(template string, args ...interface{})

func SugarInfo

func SugarInfo(args ...interface{})

func SugarInfof

func SugarInfof(template string, args ...interface{})

func SugarPanic

func SugarPanic(args ...interface{})

func SugarPanicf

func SugarPanicf(template string, args ...interface{})

func SugarWarn

func SugarWarn(args ...interface{})

func SugarWarnf

func SugarWarnf(template string, args ...interface{})

func Warn

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

Types

type Logger

type Logger struct {
	Logger *zap.Logger // 记录器实例
	// contains filtered or unexported fields
}

func NewBusinessLoggerMgr

func NewBusinessLoggerMgr(loggerConfig *LoggerConfig) (*Logger, *zap.Logger, error)

NewBusinessLoggerMgr 构建业务日志 记录器

func NewLogger

func NewLogger(loggerConfig *LoggerConfig) (log *Logger, err error)

NewLogger 构建一个 日志实例

func (*Logger) CustomEncoderConfig

func (l *Logger) CustomEncoderConfig(encoderConfig *zapcore.EncoderConfig) (err error)

CustomEncoderConfig 配置自动定义 配置编码器 zapcore.EncoderConfig

func (*Logger) GetEncoder

func (l *Logger) GetEncoder(encoderConfig zapcore.EncoderConfig) (encoder zapcore.Encoder, err error)

GetEncoder 获取 日志编码器 zapcore.Encoder

func (*Logger) GetEncoderConfig

func (l *Logger) GetEncoderConfig() (encoderConfig zapcore.EncoderConfig, err error)

GetEncoderConfig 获取 配置编码器 zapcore.EncoderConfig

func (*Logger) GetFileLogWriter

func (l *Logger) GetFileLogWriter(fileConfig *LoggerFileConfig) zapcore.WriteSyncer

GetFileLogWriter 结合日志切割工具设置日志输出接口

type LoggerConfig

type LoggerConfig struct {
	OutputConsole       bool `mapstructure:"output_console"`         // 是否输出到控制台
	OutputFile          bool `mapstructure:"output_file"`            // 是否输出到日志文件
	SplitWriteFromLevel bool `mapstructure:"split_write_from_level"` // 是否根据不同的日志级别写不同的日志
	Stacktrace          bool `mapstructure:"stacktrace"`             // 是否 记录高级别日志时记录对应的堆栈信息

	LowLevel      string            `mapstructure:"low_level"`  // 低级别日志等级, 不同级别的日志 写入的不同日志文件,
	HighLevel     string            `mapstructure:"high_level"` // 同时高级别的日志也会记录 堆栈信息
	LowLevelFile  *LoggerFileConfig `mapstructure:"low_level_file"`
	HighLevelFile *LoggerFileConfig `mapstructure:"high_level_file"`

	TimeEncoderText     string `mapstructure:"time_encoder_text"`     // 时间格式编码器, 输出时间的格式
	LevelEncoderText    string `mapstructure:"level_encoder_text"`    // 日志等级编码器; A LevelEncoder serializes a Level to a primitive type.
	DurationEncoderText string `mapstructure:"duration_encoder_text"` // 持续时间编码器; A DurationEncoder serializes a time.Duration to a primitive type.
	CallerEncoderText   string `mapstructure:"caller_encoder_text"`   // 调用文本编码器; 输出文件信息时,是以/full/path/to/package/file:line 全路径还是 package/file:line 的短路径

	TimeKey       string `mapstructure:"time_key"`       // 输出日志时时间的key
	LevelKey      string `mapstructure:"level_key"`      // 日志级别的key
	CallerKey     string `mapstructure:"callel_key"`     // 调用文本的key; file:line
	MessageKey    string `mapstructure:"message_key"`    // 日志内容的key
	StacktraceKey string `mapstructure:"stacktrace_key"` // 堆栈信息的key

	CallerSkip int `mapstructure:"caller_skip"` // 跳过几层调用者,在对zap输出的方法进行封装时会使用该参数

	EncoderText       string `mapstructure:"encoder_text"`        // 日志编码器, 用来决定日志记录的整体形式; 有 json 和 console 2 种
	EncoderConfigText string `mapstructure:"encoder_config_text"` // 日志配置编码器, An EncoderConfig allows users to configure the concrete encoders supplied by zapcore.
	// contains filtered or unexported fields
}

LoggerConfig 提供生成一个 zap.Logger + lumberjack 的配置

func BetaBusinessLogCfg

func BetaBusinessLogCfg() (cfg *LoggerConfig)

BetaBusinessLogCfg 测试 环境 默认日志配置; 输出到文件

func DevBusinessLogCfg

func DevBusinessLogCfg() (cfg *LoggerConfig)

DevBusinessLogCfg 开发 环境 默认日志配置; 输出到文件

func LocalBusinessLogCfg

func LocalBusinessLogCfg() (cfg *LoggerConfig)

LocalBusinessLogCfg 本地开发 环境 默认日志配置; 输出到控制台

func ProdBusinessLogCfg

func ProdBusinessLogCfg() (cfg *LoggerConfig)

ProdBusinessLogCfg 生产 环境 默认日志配置 输出到文件, 进行日志分级输出

func UatBusinessLogCfg

func UatBusinessLogCfg() (cfg *LoggerConfig)

UatBusinessLogCfg uat/pre 环境 默认日志配置 输出到文件, 进行日志分级输出

func (*LoggerConfig) CheckLoggerConfig

func (l *LoggerConfig) CheckLoggerConfig() (err error)

checkLoggerConfig 检查 要生成新的 日志记录器的配置

type LoggerFileConfig

type LoggerFileConfig struct {
	FileName   string `mapstructure:"file_name"`
	MaxSize    int    `mapstructure:"max_size"`
	MaxBackups int    `mapstructure:"max_backups"`
	MaxAge     int    `mapstructure:"max_age"`
	Compress   bool   `mapstructure:"compress"` // 是否开启日志压缩,默认为否
}

LoggerFile 日志文件

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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