登录
首页 >  Golang >  Go问答

如何将 logrus 输出保存到指定变量中?

来源:stackoverflow

时间:2024-02-17 17:00:20 111浏览 收藏

golang学习网今天将给大家带来《如何将 logrus 输出保存到指定变量中?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

这是将输入的值转换为 json 格式的代码。它显示了正确的输出,但我想存储该输出并使用 fmt.printf 返回它

package main

import (
    log "github.com/sirupsen/logrus"
)

func main() {
    log.SetFormatter(&log.JSONFormatter{})
    standardFields := log.Fields{
        "Number of threads": "1",
        "Odd number":        "3",
    }
    log.WithFields(standardFields).Info("Golang")
}

正确答案


当您使用 logrus.New() 创建新记录器时,您可以提供 out 字段以指向您希望的任何 io.writer。以下是该字段的文档:

type Logger struct {
    // The logs are `io.Copy`'d to this in a mutex. It's common to set this to a
    // file, or leave it default which is `os.Stderr`. You can also set this to
    // something more adventurous, such as logging to Kafka.
    Out io.Writer
    ...
    ...

例如,您可以创建一个新的 bytes.Buffer 并将其设置为 out 字段。这类似于“记录到变量”。

同样,您可以使用 SetOutput 函数设置默认记录器的输出。

理论要掌握,实操不能落!以上关于《如何将 logrus 输出保存到指定变量中?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>