2022
我们一起努力

详解Go语言常用的打log常用方法

Golang的log包短小精悍,可以非常轻松的实现日志打印转存功能,下面这篇文章主要给大家介绍了关于Go语言常用的打log方式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

image-20221116230857823

文章介绍了3种常用的打log的方式,并赋上了注解

先写上注意事项,三种方法建议分开测,因为可能在第一种的Fatal会终止运行,Fatal和Panic和Print的区别在于,Fatal会保存日志并终止程序,Panic会保存日志并丢出异常终止程序,Print会保存日志但是程序继续

main.go

package main

import (
   "log"
   "bytes"
   "fmt"
   "os"
"github.com/astaxie/beego/logs"
)

func main() {

   //1.日志写入一段缓存里
   var buf bytes.Buffer
   logger := log.New(&buf, "logger: ", log.Llongfile)//三个参数对应输出对象,前缀,文件名然后整合成前缀
   logger.Print("Hello, log file!") //实际log信息
   fmt.Println(&buf)

   //2.日志写入一段文件里,执行完刷新工程,会有文件debug.log打开来看
   fileName := "debug.log"  //在工程路径下和src同级,也可以写绝对路径,不过要注意转义符
   logFile,err  := os.Create(fileName)  //创建该文件,返回句柄
   defer logFile.Close()      //确保文件在该函数执行完以后关闭
   if err != nil {  
       log.Fatalln("open file error !")  
   }  

   //库里的log包不存在级别,只有Print,Fatal,Panic三种,想要7种级别,可以用syslog包或者框架
   debugLog := log.New(logFile,"",log.Llongfile)  
   debugLog.Print("找到一个低级bug,低级别的日志报告,执行debug记录后继续执行")
   debugLog.Fatal("发现一个严重bug,日志已记录,程序在此终止")
   debugLog.Panic("哎呀,我没有被执行,好惨")

   //3.使用beego框架的log包进行log处理 ,对应7种级别
   logInstance:=logs.GetLogger()
   logInstance.Println("this is a message of http")
   //an official log.Logger with prefix ORM
   logs.GetLogger("ORM").Println("this is a message of orm")
   logs.Debug("my book is bought in the year of ", 2016)
   logs.Info("this %s cat is %v years old""yellow", 3)
   logs.Warn("json is a type of kv like", map[string]int{"key": 2016})
   logs.Error(1024, "is a very""good game")
   logs.Critical("oh,crash")
   logs.Notice("****")
   logs.Alert("alert")
   logs.Emergency("emergency")

}

第二种

main.go

package main

import (
   "os"
   "log"
)



func main() {
   file, err := os.OpenFile("./testLog/test.log",  os.O_CREATE | os.O_WRONLY | os.O_APPEND,os.ModePerm)
   if err != nil {
       log.Fatalln(err)
   }
   logger := log.New(file, "", log.LstdFlags|log.Llongfile)
   logger.Println("日志1.")
   logger.Println("日志23")
}

本文来源:www.lxlinux.net/12277.html,若引用不当,请联系修改。

赞(0)
文章名称:《详解Go语言常用的打log常用方法》
文章链接:https://www.fzvps.com/237780.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!