我正在尝试以CSV格式编写日志。我正在尝试使用logrus将CSV写入日志。但是我可以看到日志级别(信息)和添加到日志中CSV内容的时间。比如时间=“2015-11- 18 T01:27:38-04:00”level=info msg=“100,Click,Android”如何使用logrus只写我的消息?或者我应该使用golang中可用的任何其他记录器?注:我是新手去
c6ubokkw1#
你可以像这样隐藏时间戳:
var logger = logrus.New() logger.Formatter.(*logrus.TextFormatter).DisableTimestamp = true logger.Info("no timestamp is shown")
字符串
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
型
2条答案
按热度按时间c6ubokkw1#
你可以像这样隐藏时间戳:
字符串
nbnkbykc2#
我正在尝试使用logrus将CSV写为日志。但是我可以看到日志级别(信息)和添加到日志中CSV内容的时间。
看起来你绝对不应该使用logrus,因为它存在的主要原因是创建 * 结构化 * 日志,即键值样式。不知道你为什么不干脆
字符串
或
型
如果您希望将其写入标准错误(记录器的默认值)。
如果出于任何原因你需要一个 logger, 你可以通过禁用标志来对standard logger做同样的事情:
型
但是,如果您自己创建CSV输出(即你已经有了spearate字段而不是完整的CSV行),使用标准库中的csv package:
型
除非你只是想使用logrus,否则请遵循包的概念并坚持使用结构化输出:
型