XLogger

package
v1.2.8 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2021 License: MIT Imports: 11 Imported by: 0

README

ZAP Logger Starter

基于 go.uber.org/zap 包

Zap Logger Documentation

Documentation https://pkg.go.dev/go.uber.org/zap#section-documentation

Starter Usage

该启动器内置了标准输出,文件输出,归档文件输出,mongo日志输出,只需在配置文件打开定义即可,若有其它输出需求,用户可自定义传入启动器。

// TODO define your outputs
// 定义日志输出
//type LoggerOutput struct {
//	Format           zapcore.EncoderConfig
//	Writer           io.Writer
//	LevelEnablerFunc zap.LevelEnablerFunc
//}


outputs = append(outputs,youroutputs...)


goinfras.RegisterStarter(XLogger.NewStarter(outputs...))

XLogger Config Setting

日志启动器定义的信息及异步输出开关,启动前可设置一下

AppName    string // 记录日志的应用名称
AppVersion string // 版本
DevEnv     bool   // 是否开发环境运行
AddCaller  bool   // 是否注释每条信息所在文件名和行号

// 开启可用的日志级别
DisableDebugLevelSwitch  bool // 禁用Debug级别日志记录,默认false
DisableInfoLevelSwitch   bool // 禁用Info级别日志记录,默认false
DisableWarnLevelSwitch   bool // 禁用Warn级别日志记录,默认false
DisableErrorLevelSwitch  bool // 禁用Error级别日志记录,默认false
DisableDPanicLevelSwitch bool // 禁用DPanic级别日志记录,默认false
DisablePanicLevelSwitch  bool // 禁用Panic级别日志记录,默认false
DisableFatalLevelSwitch  bool // 禁用Fatal级别日志记录,默认false

// 标准日志记录核心
EnableStdZapCore bool // 是否启用标准输出核心,默认false

// 文件日志记录核心
EnableFileZapCore bool   // 是否启用简单文件日志记录器核心,默认false
FileLogName       string // 日志记录文件路径
SyncErrorLogName  string // 异步日志错误记录器日志文件路径

// 归档文件记录核心
EnableRotateZapCore bool   // 是否启用归档文件日志核心,默认false
RotateLogDir        string // 归档日志记录目录
RotateLogBaseName   string // 归档日志记录基本文件名
WithRotationTime    uint   // 日志多久做一次归档,以天为单位
MaxDayCount         uint   // 归档日志最多保留多久,以天为单位

// 异步输出日志到mongo数据库记录核心
EnableMongoLogZapCore bool   // 是否启用异步日志记录器核心:输出到外部储存系统,默认false
MongoLogDbName        string // mongo数据库名称
MongoLogCollection    string // mongo集合名称
MongoLogExpire        int    // mongo日志超时时间,以天为单位
XLogger Usage

该启动器提供两个基本的日志记录实例

  • XLogger.XCommon() => 通用日志记录器
  • XLogger.XSyncError() => 异步输出错误记录器,用于记录异步输出时出现的错误
// 通用记录器用法
XLogger.XCommon().Debug("Log Debug Message...")
XLogger.XCommon().Info("Log Info Message...")
XLogger.XCommon().Warn("Log Warn Message...")
XLogger.XCommon().Error("Log Error Message...")
... 

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateDefaultLogger

func CreateDefaultLogger(config *Config) error

创建一个默认配置的Logger

func NewCommonLogger

func NewCommonLogger(cfg *Config, outputs ...LoggerOutput) (*zap.Logger, error)

通用zap日志记录器

func NewFileSyncCore

func NewFileSyncCore(cfg *Config) (zapcore.Core, error)

文件记录核心

func NewFileSyncErrorCore

func NewFileSyncErrorCore(cfg *Config) (zapcore.Core, error)

异步日志记录错误文件记录核心

func NewMongoLogCore

func NewMongoLogCore(cfg *Config) (zapcore.Core, error)

func NewRotateLogCore

func NewRotateLogCore(cfg *Config) (zapcore.Core, error)

归档记录核心

func NewStarter

func NewStarter(outputs ...LoggerOutput) *starter

func NewStdOutCore

func NewStdOutCore(cfg *Config) zapcore.Core

func NewSyncErrorLogger

func NewSyncErrorLogger(cfg *Config) (*zap.Logger, error)

记录zap hook 异步日志中的日志信息,一般在记录远程日志记录出错时使用,记录异步信息出现的问题,如mongo记录异常,消息队列记录异常等 该类别的日志信息只能输出到std和日志文件

func NewUserOutputsCore

func NewUserOutputsCore(outputs ...LoggerOutput) zapcore.Core

异步非错误信息(debug/info/warn)日志记录器

func SettingLevelEnableFunc

func SettingLevelEnableFunc(cfg *Config) zap.LevelEnablerFunc

根据配置设置可输出日志信息的级别

func XCommon

func XCommon() *zap.Logger

func XSyncError

func XSyncError() *zap.Logger

Types

type Config

type Config struct {
	AppName    string // 记录日志的应用名称
	AppVersion string // 版本
	DevEnv     bool   // 是否开发环境运行
	AddCaller  bool   // 是否注释每条信息所在文件名和行号

	// 开启可用的日志级别
	DisableDebugLevelSwitch  bool // 禁用Debug级别日志记录,默认false
	DisableInfoLevelSwitch   bool // 禁用Info级别日志记录,默认false
	DisableWarnLevelSwitch   bool // 禁用Warn级别日志记录,默认false
	DisableErrorLevelSwitch  bool // 禁用Error级别日志记录,默认false
	DisableDPanicLevelSwitch bool // 禁用DPanic级别日志记录,默认false
	DisablePanicLevelSwitch  bool // 禁用Panic级别日志记录,默认false
	DisableFatalLevelSwitch  bool // 禁用Fatal级别日志记录,默认false

	// 标准日志记录核心
	EnableStdZapCore bool // 是否启用标准输出核心,默认false

	// 文件日志记录核心
	EnableFileZapCore bool   // 是否启用简单文件日志记录器核心,默认false
	FileLogName       string // 日志记录文件路径
	SyncErrorLogName  string // 异步日志错误记录器日志文件路径

	// 归档文件记录核心
	EnableRotateZapCore bool   // 是否启用归档文件日志核心,默认false
	RotateLogDir        string // 归档日志记录目录
	RotateLogBaseName   string // 归档日志记录基本文件名
	WithRotationTime    uint   // 日志多久做一次归档,以天为单位
	MaxDayCount         uint   // 归档日志最多保留多久,以天为单位

	// 异步输出日志到mongo数据库记录核心
	EnableMongoLogZapCore bool   // 是否启用异步日志记录器核心:输出到外部储存系统,默认false
	MongoLogDbName        string // mongo数据库名称
	MongoLogCollection    string // mongo集合名称
	MongoLogExpire        int    // mongo日志超时时间,以天为单位
}

日志配置

func DefaultConfig

func DefaultConfig() *Config

默认最小启动配置

type LoggerOutput

type LoggerOutput struct {
	Format           zapcore.EncoderConfig
	Writer           io.Writer
	LevelEnablerFunc zap.LevelEnablerFunc
}

定义日志输出

type MongoWriter

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

实现io.Writer接口

func NewMongoWriter

func NewMongoWriter(cfg *Config) (*MongoWriter, error)

func (*MongoWriter) Write

func (w *MongoWriter) Write(p []byte) (n int, err error)

Jump to

Keyboard shortcuts

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