如何隐藏logrus中的loglevel和时间

时间:2015-11-18 13:18:29

标签: csv logging go

我正在尝试以CSV格式编写日志。我正在尝试使用logrus将CSV写为日志。但我看到日志级别(信息)以及在日志中添加到CSV内容的时间。喜欢,

time =“2015-11-18T01:27:38-04:00”level = info msg =“100,Click,Android”

如何使用logrus只写我的消息? 或者我应该使用golang中可用的任何其他记录器吗?

注意:我是新手

1 个答案:

答案 0 :(得分:1)

  

我正在尝试使用logrus将CSV写为日志。但我看到了日志级别(信息)以及在日志中添加到CSV内容的时间。

看起来您绝对不应该使用logrus,因为它存在的主要原因是创建结构化日志,即键值样式。不知道为什么你不做“

fmt.Println("100,Click,Android")

fmt.Fprintln(os.Stderr, "100,Click,Android")

如果您希望将其写入标准错误(记录器的默认值)。

如果出于任何原因需要记录器,,您可以通过禁用标志对standard logger做同样的事情:

log.SetFlags(0)
log.Println("100,Click,Android")

// Output:
// 100,Click,Android

但是,如果您自己创建CSV输出(即您已经使用了特殊字段而不是完整的CSV行),请使用标准库中的csv package

w := csv.NewWriter(os.Stdout)
w.Write([]string{"100", "Click", "Android"})
w.Flush()

// Output:
// 100,Click,Android

除非你希望使用logrus,否则请遵循包的概念并坚持使用结构化输出:

logrus.WithFields(logrus.Fields{
    "id": "100",
    "event": "Click",
    "os": "Android",
}).Info("Hooray, we have some users!")

// Output:
// time="2015-11-19T15:20:32+01:00" level=info msg="Hooray, we have some users!" event=Click id=100 os=Android