github.com/GuanceCloud/cliutils@v1.1.21/logger/readme.md (about)

     1  # Zap Logger Wrapper
     2  
     3  本封装提供一个基本的 zap logger 封装,其目的在于统一部分项目之间的日志形式。
     4  
     5  ## 基本使用
     6  
     7  ### 在具体模块中使用
     8  
     9  ```golang
    10  package abc
    11  
    12  import (
    13  	"github.com/GuanceCloud/cliutils/logger"
    14  )
    15  
    16  var (
    17  	// 最好在模块中将 log 初始化一下,这样比较保险
    18  	log = logger.DefaultSLogger("abc")
    19  )
    20  
    21  // 模块初始化
    22  func Init() {
    23  	log = logger.SLogger("abc")
    24  }
    25  
    26  func foo() {
    27  	log.Debug("this is debug message")
    28  	log.Infof("this is info message from %d", 1024)
    29  }
    30  ```
    31  
    32  ### 在项目中使用 
    33  
    34  一般而言,我在项目中使用,需要初始化一个 root-logger,该 root-logger 定义了全局的日志存放路径、日志等级等属性:
    35  
    36  ```golang
    37  package main
    38  
    39  import (
    40  	"github.com/GuanceCloud/cliutils/logger"
    41  )
    42  
    43  func main() {
    44  	r, err := logger.InitRoot(&logger.Option{
    45  		Path: "/path/to/app/log", // 如果不填写路径,日志将出到 stdout
    46  		Level: logger.DEBUG,      // 默认为 DEBUG
    47  		Flags: logger.OPT_DEFAULT,// 开启了自动切割
    48  	})
    49  }
    50  ```
    51  
    52  ## 关于自动切割
    53  
    54  默认情况下,会按照 32MB(大约) 一个文件来切割,最大保持 5 个切片,保存时长为 30 天。
    55  
    56  ## 提供环境变量来配置日志路径
    57  
    58  调用 `InitRoot()` 时,如果传入的路径为空字符串,那么会尝试从 `LOGGER_PATH` 这个环境变量中获取有效的日志路径。某些情况下,可以将该路径设置成 `/dev/null`(UNIX) 或 `nul`(windows),用来屏蔽日志输出。