go的log日志

2023-01-08 15:48:41

go中的log小型轻量而且多线程安全

关于log

log模块主要提供了3类接口:
Print:单纯打印日志
Panic:打印日志,并抛出painc异常(也就是说除了defer之外此日志后面的内容就不执行了)
Fatal: 打印日志,并强制退出程序(调用os.exit),包括defer都不执行
每一类接口其提供了3中调用方式:
log.Print:打印
log.Printf:打印并格式化
log.Println:打印并换行

初始化log
import (
    "log"
)

func init() {
    //设置前缀
    log.SetPrefix("MYLOG: ")
    //对log输出格式进行配置:日期|时间|文件路径
    log.SetFlags(log.Ldate | log.Lmicroseconds | log.Lshortfile)
}
自定义log

log标准库中还提供了内置函数用于自定义logger,通过log.new将log的配置一次性配置,简化配置

var logger *log.Logger
func init(){
	                 //输出到屏幕      前缀      日期             时间             文件名
	logger = log.New(os.Stdout, "DEBUG:", log.Ldate | log.Lmicroseconds | log.Lshortfile)
}
func main() {
	logger.Println("log")
}

在这里插入图片描述

将log输出到文件
var logger *log.Logger
func init(){
	f,err:=os.OpenFile("log.txt",os.O_WRONLY|os.O_APPEND|os.O_CREATE,0664)
	if err !=nil{
		log.Fatal("日志文件打不开")
	}
	                 //输出到log.txt      前缀      日期             时间             文件名
	logger = log.New(f, "DEBUG:", log.Ldate | log.Lmicroseconds | log.Lshortfile)
}
func main() {
	logger.Println("log")
}

在这里插入图片描述

使用builtin直接调用相关函数打印
println("DEBUG:"," ","我是日志")
panic("panic日志")

在这里插入图片描述

使用log
   log.Println("日志")
    v := "内容"
    log.Printf("日志:%s\n", v)
    //fatal日志会调用os.Exit(1),直接关闭程序
    log.Fatalln("fatal日志") 
    //Panic日志会在执行后会自动触发一个异常,但是defer可以执行
    log.Panicln("panic日志。") 
  • 作者:k55
  • 原文链接:https://blog.csdn.net/k393393/article/details/122569865
    更新时间:2023-01-08 15:48:41