跳到主要内容

日志级别

共有以下日志级别

import (
"cvgo/app"
)

func main() {
app.Log.Trace("最低级别,默认。所有日志,完整链路追踪")
app.Log.Debug("可用于开发调试信息")
app.Log.Info("业务需要收集的有用信息,例如访客 UA、请求耗时等")
app.Log.Warn("警告")
app.Log.Error("运行时错误")
app.Log.Fatal("最高级别,重要性最高,记录导致应用 panic 崩溃的严重错误")
}

在控制台输出效果如下

img.png

如果你没有在 app.yaml 中配置日志级别,则默认为 trace 级别,即调用以上任何方法都会进行日志的输出。

日志配置

app.yaml
goodlog:
level: trace

日志级别 level 的可选值:

  • trace
  • debug
  • info
  • warn
  • error
  • fatal
  • off (默认)

trace 为最低级别,日志输出的条件是大于等于当前配置的级别,例如

  • 配置为 trace 时所有级别的日志都会输出。
  • 配置为 error 时只会输出 error 和 fatal 级别的日志。
  • 配置为 off 时不进行输出,即关闭日志。

打印函数

Goland 断点调试功能非常好用,不过日常开发中还是会经常在代码里面打印数据,所以提供了一个简单的格式化输出数据类型的函数:

import (
"cvgo/provider/clog"
)

output := map[string]interface{}{
"hello": "哈喽",
"world": "沃德",
}
// 格式化输出。第二个参数是可选的,在 clog 包中提供了一些不同颜色,默认是黑色
clog.P("abc", clog.ColorRed)

img.png

此外 clog 包还对 fmt 包的打印函数进行了封装,使其带颜色输出

clog.RedPrintln("abc")
clog.RedPrintf("abc %s", "d")
clog.RedSprintf("abc %s", "d")

// 更多颜色:
clog.CyanPrintln("abc") // 青
clog.GreenPrintln("abc") // 绿
clog.BluePrintln("abc") // 蓝
clog.BluePrintln("abc") // 蓝
clog.YellowPrintln("abc") // 黄
clog.PinkPrintln("abc") // 粉