csv 如何在logrus中隐藏loglevel和时间

fzwojiic  于 2023-07-31  发布在  其他
关注(0)|答案(2)|浏览(128)

我正在尝试以CSV格式编写日志。我正在尝试使用logrus将CSV写入日志。但是我可以看到日志级别(信息)和添加到日志中CSV内容的时间。比如
时间=“2015-11- 18 T01:27:38-04:00”level=info msg=“100,Click,Android”
如何使用logrus只写我的消息?或者我应该使用golang中可用的任何其他记录器?
注:我是新手去

c6ubokkw

c6ubokkw1#

你可以像这样隐藏时间戳:

var logger = logrus.New()
logger.Formatter.(*logrus.TextFormatter).DisableTimestamp = true
logger.Info("no timestamp is shown")

字符串

nbnkbykc

nbnkbykc2#

我正在尝试使用logrus将CSV写为日志。但是我可以看到日志级别(信息)和添加到日志中CSV内容的时间。
看起来你绝对不应该使用logrus,因为它存在的主要原因是创建 * 结构化 * 日志,即键值样式。不知道你为什么不干脆

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

字符串

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


如果您希望将其写入标准错误(记录器的默认值)。
如果出于任何原因你需要一个 logger, 你可以通过禁用标志来对standard logger做同样的事情:

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

// Output:
// 100,Click,Android


但是,如果您自己创建CSV输出(即你已经有了spearate字段而不是完整的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

相关问题