Golang: glog 的使用
程序员文章站
2022-03-20 13:29:20
...
基本用法
- 创建 test.go
package 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
上一篇: Fckeditor 2.6.4
下一篇: mycat的安装和使用
推荐阅读
-
python 使用正则表达式按照多个空格分割字符的实例
-
手把手教你使用 virtualBox 让虚拟机连接网络的教程
-
Vue中 Vue.component() 的使用
-
C++ —— 非类中使用const定义常量的初始化,以及#define和typedef的区别
-
学习python的第十八天(模块导入及使用,关键字,模块搜索路径,python文件的两种用途)
-
css中相对定位和绝对定位的介绍与使用
-
angular的路由ui-router的使用详解
-
知方可补不足~sqlserver中触发器的使用
-
使用 doctrine orm 如何在程序逻辑上实现在一张表完成两个外键的设置(或则说一个实体完成两个多对一的关系)?
-
如何使用php绘制在图片上的正余弦曲线_PHP