Golang: glog 的使用
2018-01-18 15:05
211 查看
基本用法
创建 test.gopackage main import "github.com/golang/glog" func main() { glog.Info("Testing glog.") glog.Flush() }
运行
go run test.go
检查 /tmp 目录,出现了两个新的文件
ll /tmp/ total 4 -rw-r--r--. 1 root root 264 Jan 18 13:29 test.{host}.{user}.log.INFO.{date} lrwxrwxrwx. 1 root root 64 Jan 18 13:29 test.INFO -> test.{host}.{user}.log.INFO.{date}
查看 test.INFO 的内容
Log file created at: {date} Running on machine: {host} Binary: Built with gc go1.9 for linux/amd64 Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg I0118 13:29:20.878522 16625 test.go:6] Testing glog.
log 等级
基本的 log 等级分为4类:Info, Warning, Error, Fatal.Flush
log 产生后,会暂存在内存的buffer中。只有显示的调用 glog.Flush(), 数据才会真正被写入文件。glog package 的 init 函数中启动了一个 go routine 用来周期性的调用 glog.Flush() 来保证数据被写入文件, 默认的 Flush 周期为30 秒。当程序运行至 glog.Fatal() 时, glog package 中保证了在退出前程序前会将所有缓存中的log写入文件。但是对于 Info, Warning 以及 Error, 如果程序正常退出,那么在程序退出前 30 秒的 log 就会丢失。defer 可以被用来防止这种情况的发生。package main
import "github.com/golang/glog"
func main() {
defer glog.Flush()
glog.Info("Testing glog.")
}
参考文献
https://godoc.org/github.com/golang/glog相关文章推荐
- 在 golang 中使用 Json
- golang 使用 goquery 抓取 知乎周刊
- Golang使用lxn/walk做GUI界面开发:邮件群发器
- golang 常量的iota使用
- golang使用groupcache(github.com上golang团队发布)
- golang中protobuf使用
- 【GoLang】GoLang struct 使用
- C++开源日志库--Glog的使用
- 使用golang写一个redis-cli
- [Golang] GoConvey测试框架使用指南
- Go实战--golang中使用echo嵌入静态资源(labstack/echo、GeertJohan/go.rice)
- Golang 1.0 文档使用。godoc ,go 命令 学习 ,本地运行 gotour
- golang使用cobra
- 使用 Elastic Stack 来监控和调优 Golang 应用程序
- 谷歌日志库GLog 使用说明
- golang 单向管道使用
- golang channel 的使用
- glog 使用中存在的问题
- Golang开发环境搭建(Notepad++、LiteIDE两种方式以及martini框架使用)
- Golang中使用heap编写一个简单高效的定时器模块