日志配置

log 概述

LogConf 用于我们 log 相关的配置,logx.MustSetup提供了我们日志的基础配置能力,简单使用方式如下:

  1. var c logc.LogConf
  2. logc.MustSetup(c)
  3. logc.Info(context.Background(), "log")
  4. // do your job

我们 log 被 serviceConf 引用,他会在服务启动的时候自动初始化完成。

参数定义

LogConf 配置定义如下:

  1. package logx
  2. // A LogConf is a logging config.
  3. type LogConf struct {
  4. ServiceName string `json:",optional"`
  5. Mode string `json:",default=console,options=[console,file,volume]"`
  6. Encoding string `json:",default=json,options=[json,plain]"`
  7. TimeFormat string `json:",optional"`
  8. Path string `json:",default=logs"`
  9. Level string `json:",default=info,options=[debug,info,error,severe]"`
  10. MaxContentLength uint32 `json:",optional"`
  11. Compress bool `json:",optional"`
  12. Stat bool `json:",default=true"` // go-zero 版本 >= 1.5.0 才支持
  13. KeepDays int `json:",optional"`
  14. StackCooldownMillis int `json:",default=100"`
  15. // MaxBackups represents how many backup log files will be kept. 0 means all files will be kept forever.
  16. // Only take effect when RotationRuleType is `size`.
  17. // Even thougth `MaxBackups` sets 0, log files will still be removed
  18. // if the `KeepDays` limitation is reached.
  19. MaxBackups int `json:",default=0"`
  20. // MaxSize represents how much space the writing log file takes up. 0 means no limit. The unit is `MB`.
  21. // Only take effect when RotationRuleType is `size`
  22. MaxSize int `json:",default=0"`
  23. // RotationRuleType represents the type of log rotation rule. Default is `daily`.
  24. // daily: daily rotation.
  25. // size: size limited rotation.
  26. Rotation string `json:",default=daily,options=[daily,size]"`
  27. }
参数类型默认值说明枚举值
ServiceNamestring服务名称
Modestringconsole日志打印模式,console 控制台file, console
Encodingstringjson日志格式, json 格式 或者 plain 纯文本json, plain
TimeFormatstring日期格式化
Pathstringlogs日志在文件输出模式下,日志输出路径
Levelstringinfo日志输出级别debug,info,error,severe
MaxContentLengthuint320日志长度限制,打印单个日志的时候会对日志进行裁剪,只有对 content 进行裁剪
Compressboolfalse是否压缩日志
Statbooltrue是否开启 stat 日志,go-zero 版本大于等于1.5.0才支持
KeepDaysint0日志保留天数,只有在文件模式才会生效
StackCooldownMillisint100堆栈打印冷却时间
MaxBackupsint0文件输出模式,按照大小分割时,最多文件保留个数
MaxSizeint0文件输出模式,按照大小分割时,单个文件大小
Rotationstringdaily文件分割模式, daily 按日期daily,size