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),用来屏蔽日志输出。