首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏twowinter

    Golang 库 - 日志库 logrus

    等. logrus 是目前 Github 上 star 数量最多的日志库,目前(2018.12,下同)star数量为8119,fork数为1031. logrus功能强大,性能高效,而且具有高度灵活性, ,完全可以以最低的代价迁移到logrus上. logrus.Debug("Useful debugging information.") logrus.Info("Something noteworthy happened!") .") logrus.Fatal("Bye.") var log = logrus.New() log.Formatter = new(logrus.JSONFormatter) log.Formatter = new(logrus.TextFormatter

    3.9K10发布于 2020-04-17
  • 来自专栏C/C++基础

    Golang logrus 快速上手

    文章目录 1.logrus 是什么? 2.logrus 快速上手 3.logrus 实现日志滚动 4.一个完整的示例 5.小结 参考文献 1.logrus 是什么? 2.logrus 快速上手 1.安装 logrus 使用 go get命令安装 logrus: go get github.com/sirupsen/logrus 2.创建一个 Logger 对象 在程序中引入 Level { case "trace": logrus.SetLevel(logrus.TraceLevel) case "debug": logrus.SetLevel(logrus.DebugLevel ) case "info": logrus.SetLevel(logrus.InfoLevel) case "warn": logrus.SetLevel(logrus.WarnLevel) case "error": logrus.SetLevel(logrus.ErrorLevel) case "fatal": logrus.SetLevel(logrus.FatalLevel

    2.1K70编辑于 2023-02-23
  • 来自专栏landv

    log日志 Logrus的使用

    这并不意味着Logrus已死。 Logrus将继续保持安全性,(向后兼容)错误修复和性能(受接口限制)。 我相信Logrus的最大贡献是在Golang中当今结构化日志的广泛使用中发挥了作用。 // 以Stdout为输出,代替默认的stderr logrus.SetOutput(os.Stdout) // 设置日志等级 logrus.SetLevel(logrus.WarnLevel (&logrus.JSONFormatter{}) logrus.AddHook(h) //这里就可以使用Warn了 logrus.Warn("") } 问题一 但这里有个问题 /logrus_mail" "github.com/sirupsen/logrus" ) func main() { logger := logrus.New() hook, 参考博文 sirupsen/logrus Logrus的使用 打开docker的调试日志选项及为调试日志添加文件名和行号 zbindenren/logrus_mail multiplay/go-slack

    2.3K10发布于 2020-06-16
  • 来自专栏日积月累1024

    使用logrus记录gorm sql

    logrus是常用的日志组件,如何将gorm输出的sql通过logrus记录到日志中呢? 如果你还不知道如何让gorm输出sql,请猛击这里。 1. 代码实现 我们先看代码。 思路:使用logrus,实现gorm/logger.Writer接口 var DB *gorm.DB //定义自己的Writer type MyWriter struct { mlog *logrus.Logger //利用loggus记录日志 m.mlog.Info(logstr) } func NewMyWriter() *MyWriter{ log := logrus.New() //配置logrus log.SetFormatter(&logrus.JSONFormatter{ TimestampFormat:"2006-01-02 15:04:05", }) return &MyWriter Printf(string, ...interface{}) } logger.** 在输出时调用了Printf(Writer接口),也就是我们自己的MyWriter.Printf,因此日志得以写入logrus

    3.2K30发布于 2021-06-01
  • 来自专栏人人都是架构师

    Go每日一库之10:logrus

    /logrus" ) func main() { logrus.SetLevel(logrus.TraceLevel) logrus.Trace("trace msg") logrus.Debug ("debug msg") logrus.Info("info msg") logrus.Warn("warn msg") logrus.Error("error msg") logrus.Fatal 类型的值,它将logrus.Logger和设置的logrus.Fields保存下来。 logrus.SetLevel(logrus.TraceLevel) logrus.SetFormatter(&logrus.JSONFormatter{}) logrus.Trace( "trace msg") logrus.Debug("debug msg") logrus.Info("info msg") logrus.Warn("warn msg") logrus.Error

    36010编辑于 2025-01-18
  • 来自专栏容器计算

    【Golang】logrus同时输出到标准输出和日志文件

    mw := io.MultiWriter(os.Stdout, logFile) logrus.SetOutput(mw) https://github.com/sirupsen/logrus/issues

    4.4K40发布于 2021-05-27
  • 来自专栏日积月累1024

    logrus自定义日志输出格式

    已有Formatter logrus包中自带两种Formatter,分别是TextFormatter和JSONFormatter。 默认情况下,使用TextFormatter输出。 func main(){ logrus.WithField("name", "ball").Info("this is from logrus") } //输出 INFO[0000] this is from logrus name=ball 说明: 以上是go version go1.14.4 linux/amd64环境的输出。 例2 func main(){ logrus.SetFormatter(&logrus.TextFormatter{ DisableColors:true, ForceQuote:false, (&logrus.JSONFormatter{ TimestampFormat:"2006-01-02 15:04:05", PrettyPrint: true, }) logrus.WithField

    7.5K20发布于 2021-06-01
  • 来自专栏陶士涵的菜地

    gin 框架gorm下使用logrus记录sql语句

    使用gin gorm时 , 默认sql语句是打印在终端的 ,想要记录到文件中 , 可以使用logrus来记录到文件 先把logrus的一些配置做好 package tools import ( "fmt" "github.com/gin-gonic/gin" "github.com/sirupsen/logrus" "os" "path" "time" ) func Logger() *logrus.Logger { now := time.Now() logFilePath := "" if dir, err := os.Getwd = nil { fmt.Println("err", err) } //实例化 logger := logrus.New() //设置输出 logger.Out = src //设置日志级别 logger.SetLevel(logrus.DebugLevel) //设置日志格式 logger.SetFormatter(&logrus.TextFormatter

    3.9K20发布于 2020-10-28
  • 来自专栏日积月累1024

    logrus中输出文件名、行号及函数名

    日志中输出文件名,行号及函数名是个比较有用的功能,那么在logrus中如何作到呢? 1. ) 1.1 在TextFormatter中输出 func Demo(){ logrus.Info("i'm demo") } func main(){ logrus.SetReportCaller (true) logrus.SetFormatter(&logrus.TextFormatter{ //以下设置只是为了使输出更美观 DisableColors:true, TimestampFormat 例: func Demo(){ logrus.Info("i'm demo") } func main(){ logrus.SetReportCaller(true) logrus.SetFormatter ("i'm demo") } func main(){ logrus.SetReportCaller(true) logrus.SetFormatter(&MyFormatter{}) Demo

    5.1K10发布于 2021-06-01
  • 来自专栏全栈工程师修炼之路

    4.Go语言之日志模块包学习记录

    sirupsen/logrus 模块 - 日志记录 描述: Logrus 是一个结构化、可插拔的Go日志库,并且完全兼容官方的log库,具有很强的灵活性,有 TEXT 和 JSON 两种可选的日志输出格式 项目地址: https://github.com/sirupsen/logrus 项目文档: https://pkg.go.dev/github.com/sirupsen/logrus logrus 不推荐使用冗长的消息来记录运行信息 () { // 实例化logrus var logger = logrus.New() // 格式设置 logger.SetFormatter(&logrus.JSONFormatter 扩展学习: 自定义 HOOK : logrus最令人心动的功能就是其可扩展的HOOK机制了,通过在初始化时为logrus添加hook,便可以实现各种扩展功能. logrus的hook接口定义如下,其原理是每此写入日志时拦截修改 logrus.Entry. // logrus在记录Levels()返回的日志级别的消息时会触发HOOK, // 按照Fire方法定义的内容修改logrus.Entry. type Hook interface

    1K20编辑于 2023-05-03
  • 来自专栏陶士涵的菜地

    智能在线客服系统源码GOFLY开发日志- 4. gin框架增加日志中间件

    使用的日志库是 github.com/sirupsen/logrus 我新建了一个 lib 包,里面专门放对第三方库的一些封装,比如我这个日志库 这个里面,使用了一下单例模式,不用每次都生成 logrus 但是还需要每次都检测下每天的日志文件是否存在,所以专门加个函数处理,每天生成的日志文件,设置好 logrus 的输出对象 package lib import ( "github.com/sirupsen /logrus" "log" "os" "path" "time" ) var logrusObj *logrus.Logger func NewLogger(logDir string) *logrus.Logger { if logrusObj ! ) //设置日志格式 logger.SetFormatter(&logrus.TextFormatter{ TimestampFormat: "2006-01-02 15

    36710编辑于 2022-02-22
  • 来自专栏网管叨bi叨

    关于如何收集,标准化和集中化处理Golang日志的一些建议

    logrus上. package main import ( "github.com/sirupsen/logrus" "os" ) // logrus提供了New()函数来创建一个logrus的实例 . // 项目中,可以创建任意数量的logrus实例. var log = logrus.New() func main() { // 为当前logrus实例设置消息的输出,同样地, 通过在初始化时为logrus添加hook,logrus可以实现各种扩展功能. logrus的hook接口定义如下,其原理是每次写入日志时拦截修改logrus.Entry. // logrus在记录Levels := logrus.New() hook, err := logrus_sentry.NewSentryHook(YOUR_DSN, []logrus.Level{ logrus.PanicLevel

    1.8K20发布于 2020-03-26
  • 来自专栏大话swift

    gin框架之log处理

    在这里为大家推荐一个记录日志的库`github.com/sirupsen/logrus`。 logrus是目前Github上star数量最多的日志库. logrus特性 完全兼容golang标准库日志模块:logrus拥有六种日志级别:debug、info、warn、error、fatal和panic 如果您的项目使用标准库日志模块,完全可以以最低的代价迁移到logrus上。 Field机制:logrus鼓励通过Field机制进行精细化的、结构化的日志记录,而不是通过冗长的消息来记录日志。 logrus是一个可插拔的、结构化的日志框架。 //设置日志级别 logger.SetLevel(logrus.DebugLevel) //设置日志格式 logger.SetFormatter(&logrus.TextFormatter

    9.3K11发布于 2020-03-26
  • 来自专栏新亮笔记

    Gin框架 - 日志记录

    Gin 框架的日志默认只会在控制台输出,咱们利用 Logrus 封装一个中间件,将日志记录到文件中。 这篇文章就是学习和使用 Logrus 。 接下来,咱们利用 Logrus 实现它。 Logrus 使用 用 dep 方式进行安装。 logrus 支持输出文件名和行号吗? 不支持,作者的回复是太耗性能。 不过网上也有人通过 Hook 的方式实现了,选择在生产环境使用的时候,记得做性能测试。 logrus 支持日志分割吗? : logWriter, logrus.FatalLevel: logWriter, logrus.DebugLevel: logWriter, logrus.WarnLevel 最后, logrus 可扩展的 Hook 很多,大家可以去网上查找。

    3.8K20发布于 2019-07-22
  • 来自专栏后端

    Golang深入浅出之-Go语言中的日志记录:log与logrus

    在Go语言中,标准库提供了基本的日志功能,而logrus作为第三方库,则提供了更为丰富和灵活的解决方案。本文将对比介绍log和logrus,揭示常见问题、易错点及其避免策略,并辅以代码示例。1. 安装与使用:首先,通过go get安装logrus:go get github.com/sirupsen/logrus示例代码:package mainimport ("github.com/sirupsen /logrus""time")func main() {logrus.SetFormatter(&logrus.TextFormatter{FullTimestamp: true,})logrus.SetLevel (logrus.DebugLevel)logrus.Info("Starting the application at ", time.Now())if err := someFunction(); err 过度依赖字段:logrus支持结构化日志,但过度使用字段可能导致日志体积膨胀,影响分析效率。应根据实际需求选择性记录关键信息。3.

    80610编辑于 2024-04-30
  • 来自专栏精益码农

    不会写单元测试的程序员不是一名合格的滴滴司机

    {Logger: l, Level: logrus.InfoLevel, Message: "test" + time.Now().Format(time.RFC3339)}) if err ! 基准测试函数 • 以Benchmark开头 • b.N表示迭代次数,不固定,确保至少执行1s func BenchmarkFire(b *testing.B) { l := logrus.New 结果显示 带异步缓冲区的logrus写磁盘能力,是logrus默认同步写磁盘能力的10+倍。 3. () l.SetLevel(logrus.InfoLevel) l.SetFormatter(&logrus.TextFormatter{ DisableTimestamp btw 本文测试源码位于https://github.com/zwbdzb/logrus-bufferedWriter-hook, 这是一个带异步缓冲区的logrus日志Hook,能有效解决logrus

    30910编辑于 2023-09-05
  • 来自专栏扯编程的淡

    Gin框架集成日志插件

    "github.com/lestrrat-go/file-rotatelogs""github.com/sirupsen/logrus")func init() {logrus.SetFormatter ("Log request = %s", str)c.JSON(http.StatusOK, "This is log api")})_ = g.Run(":8080")}init函数:设置logrus 的输出格式为GinFormatter,这样logrus会按照GinFormatter定义的格式来输出日志。 GinFormatter结构体:定义了一个GinFormatter结构体,实现了logrus需要的日志格式化接口。Format方法定义了日志的输出格式,输出的日志格式为时间 消息。 使用logrus输出日志。效果图:我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

    72300编辑于 2023-12-11
  • 来自专栏米奇爱编程

    go module

    /logrus,这个时候就需要用github.com/gogap/logrus替换之前的第三方开源库github.com/sirupsen/logrus,操作如下: $ go mod edit -replace ="github.com/sirupsen/logrus=github.com/gogap/logrus@v0.8.2" $ go build go: finding github.com/gogap/ logrus v0.8.2 go: downloading github.com/gogap/logrus v0.8.2 go: extracting github.com/gogap/logrus v0.8.2 /sirupsen/logrus => github.com/gogap/logrus v0.8.2 graph 显示依赖关系(图)。 $ go mod graph mytest github.com/sirupsen/logrus@v1.4.2 github.com/sirupsen/logrus@v1.4.2 github.com

    1.5K10发布于 2019-09-10
  • Go Module构建

    github.com/google/uuid为例: package main import ( "github.com/google/uuid" "github.com/sirupsen/logrus " ) func main() { logrus.Println("hello, go module mode") logrus.Println(uuid.NewString()) } mod tidy 两种方式都会在go.mod文件中添加新依赖项: require ( github.com/google/uuid v1.3.0 github.com/sirupsen/logrus 查询可用版本: $ go list -m -versions github.com/sirupsen/logrus 降级到v1.7.0: $ go get github.com/sirupsen/logrus @v1.7.0 或使用编辑命令组合: $ go mod edit -require=github.com/sirupsen/logrus@v1.7.0 $ go mod tidy 升级到v1.7.1:

    11510编辑于 2025-12-18
  • 来自专栏Web技术布道师

    Golang中的包管理工具 - Go Modules

    构建一下: ❯ go build go: finding github.com/sirupsen/logrus v1.4.2 go: downloading github.com/sirupsen/logrus v1.4.2 显示的用require声明依赖 github.com/sirupsen/logrus ,版本为1.4.2。 @v1.4.1 # 下载指定版本的module(非最新) ❯ grep logrus go.mod github.com/sirupsen/logrus v1.4.1 ❯ go get -u github.com /sirupsen/logrus # 更新到最新 ❯ grep logrus go.mod github.com/sirupsen/logrus v1.4.2 ❯ tree $GOPATH/pkg/ logrus@v1.4.2 可以看到本地有了2个版本的 github.com/sirupsen/logrus ,按需使用之。

    1.7K20发布于 2019-08-01
领券