Golang Log 入门

前些日子了解到用 Golang 编写的 DHT 库, 想基于它写个 Spider. 程序写出来之后发现不太稳定, 当过一段时间后程序不再像磁盘写入数据了. 调试出错原因需要记录下关键过程的日志.

作为一个初学 Golang 的新手, 是时候学习 Log 模块了.

log 模块介绍

导入方法:

import "log"

log 模块中主要提供了三类方法:

  • Print
  • Panic
  • Fatal: 先打印输出日志, 之后调用 os.exit(1) 退出程序.

每种方法又包含三种实现函数:

  • log.Print: 输出给定字符串
  • log.Printf: 格式化字符串输出
  • log.Println: 在 Print 基础上自带一个换行

Logger

以上所说是 log 最最入门的功能, log 模块的功能远不止如此.

Logger 就是 log 提供的一个类型. 它允许我们将日志保存到文件中.

Looger 通过 new 方法来创建对象, 之后对其进行操作即可.

new 方法签名为:

func New(out io.Writer, prefix string, flag int) *Logger

其中有三个参数:

  • out 写入对象
  • prefix 前缀
  • flag 附加选项 (例如 log.Lshortfile 等等)

参考文章

Go 官方文档

Golang中使用log(一):Golang 标准库提供的Log