Go语言log库

日志作为一种记录应用运行状态的方式,在日常开发中是必不可少的功能。每种语言都有其相对应的日志库供开发者使用。对于Go语言,虽然有时可以用fmt库输出一些信息,但是不够灵活。Go 语言在标准库中提供了一个日志库log,用于记录程序中的日志信息。

import "log"
func main() {
  var hello := "hello"
  var world := "world"
  log.Printf("this is a test, %s %s", hello, world)
  log.Panicf("this is a test, %s", hello)
  log.Fatalf("this is a test, %s", world)
}
log提供了三组函数:
  • Print/Printf/Println:正常输出日志;
  • Panic/Panicf/Panicln:输出日志后,以日志字符串为参数调用panic;
  • Fatal/Fatalf/Fatalln:输出日志后,调用os.Exit(1)退出程序。
    默认在通过标准错误stderr输出。
日志格式
  • log.SetPrefix为每条日志文本设置前缀。
  • log.SetFlags为每条日志增加一些额外信息,如日期时间、文件名等。
日志输出

log.New可以将日志输出到指定文件或其它地方。
log.New有三个参数:

  • io.Writer:日志都会写到这个Writer中;
  • prefix:前缀,也可通过SetPrefix设置;
  • flag:选项,也可通过SetFlag设置。

log实现了一个小巧的日志库,可在应用中简单使用。 如果log库的功能不能满足需求,社区也涌现了很多功能丰富的日志库,可以选择适合自己日志库使用。


版权声明:本文为hnsitsing原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。