github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/logger/README.md (about) 1 # logger 2 3 ## 基本用法 4 ```go 5 package main 6 7 import ( 8 "github.com/isyscore/isc-gobase/logger" 9 ) 10 11 func main() { 12 logger.Debug("hello %v", "debug") 13 logger.Info("hello %v", "info") 14 logger.Warn("hello %v", "warn") 15 logger.Error("hello %v", "error") 16 } 17 ``` 18 配置 19 ```yaml 20 base: 21 logger: 22 level: info 23 # 日志文件目录,默认工程目录的logs文件夹 24 home: ./logs/ 25 color: 26 # 启用:true/false,默认:false 27 enable: false 28 # 日志滚动策略 29 rotate: 30 # 日志滚动size;默认300MB 31 max-size: 300MB 32 # 日志文件最大保留天数;默认60天 33 max-history: 60d 34 # 多久滚动一次;默认一天 35 time: 1d 36 path: 37 # 日志展示格式:full-全路径;short-短路径;默认short 38 type: short 39 # 指定分组 40 group: 41 # 分组1 42 group1: 43 # 分组1的日志级别 44 level: info 45 # 分组2 46 group2: 47 # 分组2的日志级别 48 level: debug 49 ``` 50 51 ## 更多用法 52 ### 1. 分组打印 53 对日志进行精细化管控,这里增加日志分组功能,其中默认分组为"root",我们可以指定我们自己的分组,在代码中不同的业务代码中使用不同的分组,这样在需要的情况下,我们可以对该模块的日志级别进行精细化控制 54 ```go 55 package main 56 57 import ( 58 "github.com/isyscore/isc-gobase/logger" 59 ) 60 61 func main() { 62 logger.Group("group1").Info("hello", " ", "info") 63 logger.Group("group1").Infof("hello %v", "info") 64 } 65 ``` 66 ### 2. 线上日志级别动态修改 67 支持线上动态的日志修改,base.logger.level为默认分组的日志级别,如下修改为默认分组 68 #### 2.1 root默认分组修改 69 ```shell 70 curl -X PUT http://localhost:xxx/{api-prefix}/{api-module}/config/update -d '{"key":"base.logger.level", "value":"debug"}' 71 ``` 72 ```go 73 func main() { 74 // 设置为debug后,如下的debug级别能够记录到日志中 75 logger.Debug("hello %v", "debug1") 76 } 77 ``` 78 79 #### 2.2 指定分组修改 80 如下为指定group名字为xxx的,设置日志级别为debug 81 ```shell 82 curl -X PUT http://localhost:xxx/{api-prefix}/{api-module}/config/update -d '{"key":"base.logger.group.xxxx.level", "value":"debug"}' 83 ``` 84 ```go 85 func main() { 86 // 如下的日志就会被打印出来,否则默认info级别是不打印的 87 logger.Group("group1").Debugf("hello %v", "debug") 88 } 89 ```