良许Linux教程网 干货合集 详解Go语言常用的打log常用方法

详解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("fuck")
   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")
}

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部