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  ```