标准库log包为GO语言提供日志管理,用于记录GO程序产生的消息。日志的主要目的是跟踪程序中发生的事情、及其发生的位置和发生的时间。日志可以提供代码跟踪、摘要和分析。日志相当于程序员的眼睛和耳朵,是程序员发现程序错误以及了解程序运行情况的方法。
使用日志,需要将其导入程序中:
import (
"log"
)
它最简单的用法是,格式化消息并发送到标准错误中,如下所示:
结果:
C:golang>go run example38.go
LOG: 2017/06/25 14:49:41.989813 C:/golang/example38.go:11: init started
LOG: 2017/06/25 14:49:41.990813 C:/golang/example38.go:15: main started
LOG: 2017/06/25 14:49:41.990813 C:/golang/example38.go:18: fatal message
exit status 1
日志记录包含下面这些:
- 前缀
- 时间戳
- 程序路径
- 信息内容
这些信息是自动生成的,记录了事件发生的时间和地点的信息。
Println是写日志消息的标准方法。
Fatalln或任何其他"fatal"的函数,打印错误消息后调用OS.EXIT(1),强制程序退出。
Panicln写入日志消息后发出一个panic,除非recover否则将导致程序终止。
在以下的例子中测试SMTP连接是否正常工作,当连接到一个不存在的SMTP服务器“SMTP.smail”,程序将产生日志消息并终止。
结果:
C:golang>go run example39.go
TRACE: 2017/06/25 14:54:42.662011 C:/golang/example39.go:9: init started
TRACE: 2017/06/25 14:55:03.685213 C:/golang/example39.go:15: dial tcp 23.27.98.252:25: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
exit status 1