日志级别

日志级别用于管理日志的输出,我们可以通过设定特定的日志级别来关闭/开启特定的日志内容。通过SetLevel方法可以设置日志级别,glog支持以下几种日志级别常量设定:

  1. LEVEL_ALL
  2. LEVEL_DEBU
  3. LEVEL_INFO
  4. LEVEL_NOTI
  5. LEVEL_WARN
  6. LEVEL_ERRO
  7. LEVEL_CRIT

我们可以通过位操作组合使用这几种级别,例如其中LEVEL_ALL等价于LEVEL_DEBU | LEVEL_INFO | LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT。例如我们可以通过LEVEL_ALL & ^LEVEL_DEBU & ^LEVEL_INFO & ^LEVEL_NOTI来过滤掉LEVEL_DEBU/LEVEL_INFO/LEVEL_NOTI日志内容。

当然glog模块还有其他的一些级别,如CRITFATA,但是这两个级别是非常严重的错误,无法由开发者自定义屏蔽,产生严重错误的时候。将会产生一些额外的系统动作,如panic/exit

简单示例:

  1. package main
  2. import (
  3. "github.com/gogf/gf/os/glog"
  4. )
  5. // 设置日志等级,过滤掉Info日志信息
  6. func main() {
  7. l := glog.New()
  8. l.Info("info1")
  9. l.SetLevel(glog.LEVEL_ALL^glog.LEVEL_INFO)
  10. l.Info("info2")
  11. }

执行后,输出结果为:

  1. 2018-10-10 14:38:48.687 [INFO] info1

我们也可以通过gf框架的g.SetLogLevel/g.SetDebug模块来管理日志级别、调试信息。对应的日志等级如下:

  1. LOG_LEVEL_ALL
  2. LOG_LEVEL_DEBU
  3. LOG_LEVEL_INFO
  4. LOG_LEVEL_NOTI
  5. LOG_LEVEL_WARN
  6. LOG_LEVEL_ERRO
  7. LOG_LEVEL_CRIT