标准库log
是Go语言提供的用于简单日志记录的包。它可以帮助我们输出日志信息,以便在程序运行时进行调试、错误跟踪和状态记录等。下面是log
包的基本使用方法:
- 导入
log
包:
首先需要导入log
包,以便在代码中使用它。
import "log"
- 输出日志消息:
使用log
包可以输出各种级别的日志消息,例如普通信息、警告和错误等。以下是几个常用的输出函数:
Print
:输出普通信息,没有特定的级别。Printf
:格式化输出普通信息。Println
:输出普通信息,自动换行。Fatal
:输出错误信息并终止程序运行。Fatalf
:格式化输出错误信息并终止程序运行。Fatalln
:输出错误信息并终止程序运行,自动换行。
下面是一个简单的示例,展示了如何使用log
包输出日志:
package main
import "log"
func main() {
log.Print("普通日志消息")
log.Println("普通日志消息(自动换行)")
log.Printf("带参数的日志消息:%s", "参数值")
log.Fatal("致命错误日志消息") // 程序会终止运行,后续代码不会执行
}
在上述示例中,我们使用了log.Print
、log.Println
和log.Printf
输出了不同形式的日志消息。最后,我们使用log.Fatal
输出致命错误日志消息,并调用os.Exit(1)
终止程序运行。
- 设置日志输出前缀:
你可以使用log.SetPrefix
函数设置日志输出的前缀字符串。这在区分不同模块的日志时非常有用。
func main() {
log.SetPrefix("[MyApp]")
log.Print("普通日志消息")
// 输出:[MyApp] 普通日志消息
}
在上述示例中,我们通过log.SetPrefix
设置了日志输出的前缀为[MyApp]
,然后使用log.Print
输出日志消息。输出结果将包含前缀字符串。
- 记录调用堆栈信息:
使用log
包还可以记录调用堆栈信息,以便在错误跟踪时更好地定位问题。你可以使用log.Print
、log.Println
、log.Printf
等输出函数前加上log.SetFlags(log.LstdFlags | log.Lshortfile)
来启用堆栈信息记录。
func main() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
log.Print("普通日志消息")
// 输出:2023/08/04 11:30:45 main.go:11: 普通日志消息
}
在上述示例中,我们使用log.SetFlags
设置了日志记录的标志位,其中log.LstdFlags
会输出日期和时间,log.Lshortfile
会输出文件名和行号。
这只是log
包的基本使用方法,你还可以通过设置更多标志位、重定向日志输出到文件等方式来拓展其功能。