0

这是将输入的值转换为 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")
}
4

1 回答 1

1

当您使用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 函数设置默认记录的输出。

于 2021-06-03T13:20:51.123 回答