基本用法

  1. 创建 test.go

    package mainimport "github.com/golang/glog"func main() {glog.Info("Testing glog.")glog.Flush()
    }
    
  2. 运行
    go run test.go
  3. 检查 /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}
  4. 查看 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 mainimport "github.com/golang/glog"func main() {defer glog.Flush()glog.Info("Testing glog.")
}

参考文献

  1. https://godoc.org/github.com/golang/glog

Golang: glog 的使用相关推荐

  1. golang glog文件名命令_Golang开发的全功能单文件Web服务器

    最新HTTP/2标准已经发布,是基于谷歌QUIC的技术升级而成.虽然标准已经发布,但是目前还鲜有应用支持,那么有没有方法进行技术尝鲜呢?答案是肯定的.本文虫虫给大家介绍一个Golang Web服务器应 ...

  2. Go的日志模块glog调研笔记

    glog简介 glog是著名的google开源C++日志库glog(https://github.com/google/glog)的golang版本,glog是一个轻量级的日志库,上手简单不需要配置文 ...

  3. Golang modules 初探

    2019独角兽企业重金招聘Python工程师标准>>> 今天天色刚刚亮起,起床看到golang 1.11正式发版了,有着两个重要的特性:modules和WebAssembly. 本博 ...

  4. Golang实践录:工程管理

    本文介绍Golang的工程管理. 工程概述 GOPATH目录下创建三个目录: src 存放源代码,每个工程一个单独的目录 pkg 编译过后生成的包文件存放目录,根据平台有不同目录,里面有许多.a库,暂 ...

  5. golang gopher-lua 遍历table元素

    前言 gopher-lua中也有c++中的lua.next函数,不过目前我没有查到gopher-lua的next函数用法,因此这里用的是func (ls *LState) ForEach(tb *LT ...

  6. golang 引入外部包的三种方式:go get, go module, vendor目录

    import "github.com/astaxie/beego" 编译出错解决方案: go get:确保你的GOPATH是工程目录,代码在src目录下,然后在命令提示符中输入:g ...

  7. 【Golang】关于Go中logrus的用法

    一.标准日志库log 在日常开发中,日志是必不可少的功能.虽然有时可以用fmt库输出一些信息,但是灵活性不够.Go 标准库提供了一个日志库log. 1.快速使用 log是 Go 标准库提供的,不需要另 ...

  8. goudp文件传输服务器,golang实现ftp实时传输文件的案例

    一.项目简介 本项目主要实现的功能是ftp客户端不断地将xml文件和jpg文件实时地上传到服务器,当然也可以是其他格式的文件.每当ftp客户端取到一个文件之后,将文件上传到服务器后,然后将其删除. 项 ...

  9. golang实现ftp实时传输文件

    一.项目简介 本项目主要实现的功能是ftp客户端不断地将xml文件和jpg文件实时地上传到服务器,当然也可以是其他格式的文件.每当ftp客户端取到一个文件之后,将文件上传到服务器后,然后将其删除.项目 ...

最新文章

  1. iOS中的UIAlertView之新方法(弹出警告框)
  2. php %3f,PHP
  3. Android 工程的创建
  4. 项目学生:使用AOP简化代码
  5. 在MongoDB的MapReduce上踩过的坑
  6. 安全认证Kerberos
  7. spring-boot 整合redis作为数据缓存
  8. android系统各种版本所占市场比例
  9. 51单片机电路原理图_51单片机AD转换电路设计实现
  10. android怎么垂直居中,【Android】水平居中 垂直居中 中心居中
  11. 机器人学之动力学笔记【11】—— 拉格朗日 动力学方程
  12. 陈春花:创造价值 做好产品
  13. 漫步微积分三十二——两条曲线间的面积
  14. mysql数据库地址 名称_数据库地址和名称是什么?怎么知道自己地址和名称?
  15. Python数据分析-北京房价分析
  16. 捣鼓车间 | 学生获奖作品:戒烟帽
  17. C++描述 104.仓库选址
  18. 读取手机内存和SD卡的空间大小
  19. OutputStreamWriter的基本使用
  20. 2023年华为认证H12-821、H12-831考试指南(包括学习视频和题库)

热门文章

  1. Python详细介绍及使用(基础篇)
  2. 反序列化漏洞-JAVA
  3. emacs 自带的简单入门教程(TUTORIAL)
  4. STM32F411核心板固件库开发(一) GPIO基本配置
  5. otg usb 定位_USB OTG插入检测识别
  6. mysql 唯一序列号_利用mysql生成唯一序号
  7. 关于 三相可控硅触发板 晶闸管整流调压控制板
  8. 少儿编程Scratch学习教程2--官方初学指南
  9. 3D模型汇总----骨骼模型
  10. 88 Three.js 导入FBX格式骨骼绑定模型