文章目录
- 一 log简介
- 二 log简单使用
-
- 2.1 /Println/Printf函数
- 2.2 /Panicf/Panicln函数
- 2.3 /Fatalf/Fatalln函数
- 三 标准日志配置
-
- 3.1 flag参数
- 3.2 标准日志配置示例
- 四 日志前缀配置
- 五 日志输出位置配置
- 六 自定义logger
一 log简介
golang内置了log包,实现简单的日志服务。通过调用log包的函数,可以实现简单的日志打印功能。
log包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)、和Panic系列(Panic|Panicf|Panicln)来使用,比自行创建一个logger对象更容易使用,它们会将日志信息打印到终端界面
二 log简单使用
log包中有3个系列的日志打印函数,分别print系列、panic系列、fatal系列.
函数系列 | 说明 | 作用 |
---|---|---|
Print/Printf/Println | 单纯打印日志 | |
Panic | Panic/Panicf/Panicln | 打印日志,抛出panic异常 |
Fatal | Fatal/Fatalf/Fatalln | 打印日志,强制结束程序((1)),defer函数不会执行 |
log包主要提供了3类接口,分别是print系列、panic系列、fatal系列,对每一类接口其提供了3种调用方式,分别是“Xxxx、Xxxxln、Xxxxf”,基本与fmt
中的相关函数类似。
2.1 /Println/Printf函数
/Println/Printf函数只是单纯打印日志
实例演示:
package main
import "log"
func main() {
log.Print("my log")
log.Printf("my log %d", 100) // 格式化输出
name := "tom"
age := 20
log.Println(name, " ", age)
}
运行结果:
[Running] go run "c:\Users\Mechrevo\Desktop\go_pro\"
2022/07/12 17:27:16 my log
2022/07/12 17:27:16 my log 100
2022/07/12 17:27:16 tom 20
[Done] exited with code=0 in 1.118 seconds
基本使用与fmt
中的函数类似
2.2 /Panicf/Panicln函数
/Panicf/Panicln函数会打印出日志并且抛出panic异常,需要注意的是在panic之后声明的代码将不会执行。
实例演示:
package main
import (
"fmt"
"log"
)
func main() {
defer fmt.Println("发生了 panic错误!")
log.Print(