Debug/Debugf 是非常有用的几个方法,用于调试信息的记录,常用于开发/测试环境中,当应用上线之后可以方便地使用 SetDebug 或者配置文件进行开启/关闭。

    1. package main
    2. import (
    3. "context"
    4. "time"
    5. "github.com/gogf/gf/v2/frame/g"
    6. "github.com/gogf/gf/v2/os/gtime"
    7. "github.com/gogf/gf/v2/os/gtimer"
    8. )
    9. func main() {
    10. ctx := context.TODO()
    11. gtimer.SetTimeout(ctx, 3*time.Second, func(ctx context.Context) {
    12. g.Log().SetDebug(false)
    13. })
    14. for {
    15. g.Log().Debug(ctx, gtime.Datetime())
    16. g.Log().Info(ctx, gtime.Datetime())
    17. time.Sleep(time.Second)
    18. }
    19. }

    该示例中使用 glog.Debug 方法输出调试信息,3秒后关闭调试信息的输出。执行后,输出结果如下,可以看到只输出了3条日志信息,后续的调试日志信息由于通过 SetDebug 方法关闭后,便不再输出。

    1. 2022-01-05 15:59:05.674 [DEBU] 2022-01-05 15:59:05
    2. 2022-01-05 15:59:05.675 [INFO] 2022-01-05 15:59:05
    3. 2022-01-05 15:59:06.684 [DEBU] 2022-01-05 15:59:06
    4. 2022-01-05 15:59:06.684 [INFO] 2022-01-05 15:59:06
    5. 2022-01-05 15:59:07.692 [DEBU] 2022-01-05 15:59:07
    6. 2022-01-05 15:59:07.692 [INFO] 2022-01-05 15:59:07
    7. 2022-01-05 15:59:08.708 [INFO] 2022-01-05 15:59:08
    8. 2022-01-05 15:59:09.717 [INFO] 2022-01-05 15:59:09
    9. 2022-01-05 15:59:10.728 [INFO] 2022-01-05 15:59:10
    10. 2022-01-05 15:59:11.733 [INFO] 2022-01-05 15:59:11

    我们还可以通过命令行参数或者系统环境变量参数的方式关闭掉调试信息。

    1. 修改命令行启动参数 - gf.glog.debug=false
    2. 修改指定的环境变量 - GF_GLOG_DEBUG=false