Categorygithub.com/jjonline/share-mod-lib/logger
modulepackage
1.0.0
Repository: https://github.com/jjonline/share-mod-lib.git
Documentation: pkg.go.dev

# README

Logger 组件

说明

本包为zap日志组件封装,用于golang项目统一日志输出和收集。

使用示例

  • 日志组件使用:zap
  • 日志输出选项:stdout stderr | 日志目录 (指定存储目录)
  • 日志级别选项:panic fatal error warning info debug
  • 生产环境级别:info
  • 开发测试级别:debug
  • 日志输出格式:json
// instance
// 第一参数为日志级别
// 第二参数为日志存储路径,文件形式记录日志则是文件路径,标准输出则 stderr
var log = logger.New("debug", "stderr")

// 直接使用记录一段字符串日志
log.Debug("debug data")
log.Error("debug error")

// 直接使用底层zap记录多字段日志,性能更佳,推荐方式
log.Zap.Info(
    "msg",
    zap.String("module", "module-can-use-kibana"),
    zap.String("sql", "your sql"),
    zap.Int("num", 101),
)

本库亦封装实现了rediselasticgorm的logger实现,以使用底层zap日志组件。

# Functions

GetRequestBody 获取请求body体 - strip 是否要将JSON类型的body体去除反斜杠和大括号,以便于Es等不做深层字段解析而当做一个字符串.
GetRequestID 暴露方法:读取当前请求ID.
GinCors 为gin开启跨域功能<尽量通过nginx反代处理>.
GinLogger zap实现的gin-logger日志中间件<gin.HandlerFunc的实现> - appendHandle 额外补充的自定义添加字段方法,可选参数.
GinLogHttpFail gin框架失败响应日志处理.
GinPrintInitRoute 为gin自定义注册路由日志输出 注意:因gin路由注册信息输出只有dev模式才有 若为了全面记录路由注册日志,调用 gin.SetMode 方法代码可写在路由注册之后,但就会出现gin的开发模式提示信息.
GinRecovery zap实现的gin-recovery日志中间件<gin.HandlerFunc的实现>.
IsModifyMethod 检查当前请求方式否为修改类型 - 即判断请求是否为post、put、patch、delete.
New 初始化单例logger -- level 日志级别:debug、info、warning 等 -- path 文件形式的日志路径 or 标准输出 stderr -- recordField 指定xxxRecord系列方法额外添加分门别类的方法的字段名称.
NewGorm2Logger 创建gorm2的logger实例.

# Constants

gin panic日志标记.
gin preflight 预检options请求类型日志.
gin request请求日志标记.
gin 业务层面失败响应日志标记.
gin 路由注册日志标记.
请求ID名称.
当使用纳秒时间戳作为请求ID时拼接的前缀字符串.

# Structs

DBLogger gorm日志记录器.
EsLogger es 日志记录器.
Logger logger封装, 实现第三方库的日志接口.
RedisHook redis hook implement.

# Interfaces

InterFace 通用logger接口定义.