头图

go 酷之 logrus 日志

更多文章:https://oscome.cn/

引言

作为 github 上 golang star 最多的库,logrus值得练习。

项目地址

项目地址: https://github.com/sirupsen/l... [star:21.4k]

使用场景

  • 日志打印、格式化日志

安装

go get github.com/sirupsen/logrus

常用方法

  • Info 打印 info 级别的日志
  • SetFormatter 设置日志格式
  • SetLevel 设置打印的级别,此级别以上显示
  • SetReportCaller 设置是否将调用方法作为字段包含在打印的日志内。

例子

package main

import "github.com/sirupsen/logrus"

func main() {
    log := logrus.New()
    log.Info("------TextFormatter--------") // 默认格式
    log.SetFormatter(&logrus.TextFormatter{
        TimestampFormat: "2006-01-02 15:04:05", // 定义日期时间格式
        FullTimestamp:   true,
        DisableColors:   true,
    })
    log.Info("oscome info log")
    log.Debug("oscome debug log")

    log.WithFields(logrus.Fields{
        "name": "test",
    }).Infof("to do %v", "log")

    log.Info("------JSONFormatter--------")

    formatter := &logrus.JSONFormatter{
        TimestampFormat: "2006-01-02 15:04:05", // 定义日期时间格式
        DataKey:         "test",                // key
        FieldMap: logrus.FieldMap{
            logrus.FieldKeyTime:  "timestamp",
            logrus.FieldKeyLevel: "level",
            logrus.FieldKeyMsg:   "message",
            logrus.FieldKeyFunc:  "caller",
        },
    }
    log.SetFormatter(formatter)
    log.SetReportCaller(true)      // 打印 log 产生的位置
    log.SetLevel(logrus.InfoLevel) // debug
    logrus.Info("oscome info log")
    log.Debug("oscome debug log")

    log.WithFields(logrus.Fields{
        "name": "test",
    }).Infof("to do %v", "log")
}

实例代码

https://github.com/oscome/god...

tips

  1. 建议全局统一格式,如果需要收集建议设置为 json 格式,方便收集到 ES 等日志系统
  2. 可以配合 file-rotatelogs 或者 shell 去分割

go 酷
go常用库
43 声望
1 粉丝
0 条评论
推荐阅读
golang学习之旅——解开心中的go mod疑惑
在go1.16版本发布后,go module由原来的默认值 auto 变为 on 了,这意味着后续开发中,go更推荐用go module 模式开发,而不是gopath模式开发了。

Keson11阅读 14.8k

「刷起来」Go必看的进阶面试题详解
逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分配和垃圾回收的开销,从而提高程序的性能。下面是一道涉及逃逸分析的面试题及其详解。

王中阳Go4阅读 1.9k评论 1

封面图
初学后端,如何做好表结构设计?
这篇文章介绍了设计数据库表结构应该考虑的4个方面,还有优雅设计的6个原则,举了一个例子分享了我的设计思路,为了提高性能我们也要从多方面考虑缓存问题。

王中阳Go4阅读 1.7k评论 2

封面图
滚蛋吧,正则表达式!
你是不是也有这样的操作,比如你需要使用「电子邮箱正则表达式」,首先想到的就是直接百度上搜索一个,然后采用 CV 大法神奇地接入到你的代码中?

良许4阅读 2.3k

又一款眼前一亮的Linux终端工具!
今天给大家介绍一款最近发现的功能十分强大,颜值非常高的一款终端工具。这个神器我是在其他公众号文章上看到的,但他们都没把它的强大之处介绍明白,所以我自己体验一波后,再向大家分享自己的体验。

良许5阅读 1.8k

一分钟搞明白!快速掌握 Go WebAssembly
最近因为各种奇怪的原因,更多的接触到了 WebAssembly。虽然之前很多博客也翻过写过各种文章,但总感觉欠些味道。于是今天梳理了一版,和大家一起展开学习。

煎鱼4阅读 2.1k

面试官:请说一下如何优化结构体的性能?
使用内存对齐机制优化结构体性能,妙啊!前言之前分享过2篇结构体文章:10秒改struct性能直接提升15%,产品姐姐都夸我好棒 和 Go语言空结构体这3种妙用,你知道吗? 得到了大家的好评。这篇继续分享进阶内容:结...

王中阳Go4阅读 3.8k评论 2

封面图
43 声望
1 粉丝
宣传栏