Go语言学习笔记—golang标准库log包

时间:2024-10-10 14:21:35

文章目录

  • 一 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 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(