首页 > 编程知识 正文

Go语言框架Gin之6 日志框架 Logrus

时间:2023-05-03 22:32:54 阅读:273966 作者:4481

本节主要讲解Go语言优秀的日志框架:Logrus。Logrus 是一个结构化、可插拔的 Go 日志框架,完全兼容官方 log 库接口。功能强大的同时,Logrus 具有高度的灵活性,它提供了自定义插件的功能,有 TEXT 与 JSON 两种可选的日志输出格式。 Logrus 还支持 Field 机制和可扩展的 HOOK 机制。它鼓励用户通过 Field 机制进行精细化的、结构化的日志记录,允许用户通过 hook 的方式将日志分发到任意地方。许多著名开源项目,如 docker、prometheus 等都是使用 Logrus 来记录日志。 package mainimport ("fmt""github.com/gin-gonic/gin""github.com/sirupsen/logrus""net/http""os")var log=logrus.New()// 创建一个log示例func initLogrus() error {log.Formatter=&logrus.JSONFormatter{}// 设置为json格式的日志file, err := os.OpenFile("./gin_log.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)// 创建一个log日志文件if err!=nil {fmt.Println("创建文件/打开文件失败!")return err}log.Out=file // 设置log的默认文件输出gin.SetMode(gin.ReleaseMode)// 发布版本gin.DefaultWriter=log.Out// gin框架自己记录的日志也会输出log.Level=logrus.InfoLevel// 设置日志级别return nil}func main() {err := initLogrus()if err!=nil {fmt.Println(err)return}r:=gin.Default()r.GET("/logrus", func(c *gin.Context) {//log日志信息的写入log.WithFields(logrus.Fields{"url":c.Request.RequestURI, //自定义显示的字段"method":c.Request.Method,"params":c.Query("name"),"IP":c.ClientIP(),}).Info()resData:= struct {Code int `json:"code"`Msg string `json:"msg"`Data interface{} `json:"data"`}{http.StatusOK,"响应成功","OK"}c.JSON(http.StatusOK,resData)})r.Run(":9090")}//todo:文档地址:https://github.com/sirupsen/logrus

以上是日志框架 Logrus的基本使用,还可以结合其他组件完成对日志文件按照时间进行分隔、设置保留时间等,鉴于篇幅限制,详细内容在文章末尾对应的视频中有讲解,在此略过。

更多视频讲解:https://study.163.com/course/introduction/1211042801.htm

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。