基本介绍

goframe框架的各个组件在一些关键的功能节点会打印出一些调试信息,原本仅供框架内部开发者在开发阶段使用。由于功能强大,从goframe框架v1.10.0版本开始,全面开放给所有的框架使用者。

框架调试模式下打印的调试信息将会以[INTE]级别的日志前缀输出到终端标准输出,并且会打印出所在源文件的名称以及代码行号,例如:

  1. 2021-04-14 15:24:52.954 [INTE] gdb_driver_mysql.go:49 Open: root:12345678@tcp(127.0.0.1:3306)/test
  2. 2021-04-14 15:24:52.954 [INTE] gdb.go:492 open new connection success, master:false, config:&gdb.ConfigNode{Host:"", Port:"", User:"", Pass:"", Name:"", Type:"mysql", Role:"", Debug:false, Prefix:"", DryRun:false, Weight:0, Charset:"", LinkInfo:"root:12345678@tcp(127.0.0.1:3306)/test", MaxIdleConnCount:0, MaxOpenConnCount:0, MaxConnLifeTime:0, QueryTimeout:0, ExecTimeout:0, TranTimeout:0, PrepareTimeout:0, CreatedAt:"", UpdatedAt:"", DeletedAt:"", TimeMaintainDisabled:false}, node:&gdb.ConfigNode{Host:"", Port:"", User:"", Pass:"", Name:"", Type:"mysql", Role:"", Debug:false, Prefix:"", DryRun:false, Weight:0, Charset:"utf8", LinkInfo:"root:12345678@tcp(127.0.0.1:3306)/test", MaxIdleConnCount:0, MaxOpenConnCount:0, MaxConnLifeTime:0, QueryTimeout:0, ExecTimeout:0, TranTimeout:0, PrepareTimeout:0, CreatedAt:"", UpdatedAt:"", DeletedAt:"", TimeMaintainDisabled:false}

特性开启

这些调试信息默认情况下是关闭的,不会影响框架性能,框架的开发者和使用者可以通过以下方式打开:

  1. 命令行启动参数 - gf.debug=true
  2. 指定的环境变量 - GF_DEBUG=true
  3. GoFrame v1.14.0版本以后,在程序启动boot包中使用g.SetDebug方法手动打开/关闭。该方法是非并发安全的,意味着您不能在运行时异步多协程去调用该方法动态设置调试模式。

您可以发现goframe框架的许多功能模块特性也是按照命令行启动参数+环境变量的形式按照一定规则进行配置🐸。

需要注意的是,框架的各个模块关键调试信息仅会输出到终端标准输出,不支持输出到日志文件中。

使用示例

通过环境变量启用调试模式

我们以Goland IDE为例,在运行模板中添加GF_DEBUG环境变量即可。

调试模式 - 图1

调试模式 - 图2

通过命令行参数启用调试模式

启动程序的时候带上--gf.debug=true即可,例如:

  1. $ ./app --gf.debug=true
  1. $ ./app --gf.debug true

或者

  1. $ ./app --gf.debug=1
  1. $ ./app --gf.debug 1

调试模式 - 图3