首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将logrus时间设置为UTC?

如何将logrus时间设置为UTC?
EN

Stack Overflow用户
提问于 2016-11-09 08:03:33
回答 2查看 3.9K关注 0票数 6

我使用Go with logrus,但是我发现时间字段总是在本地时间格式化。如何将logrus的时间更改为UTC时间?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-09 08:30:09

时区设置不直接支持,但您可以使用自定义的log.Formatter,其中您可以“切换”到您选择的时区,包括UTC。

使用本地时区(而不是UTC)的简单用法可能如下所示:

代码语言:javascript
复制
import (
    log "github.com/Sirupsen/logrus"
)

func main() {
    log.SetFormatter(&log.JSONFormatter{})
    log.Info("Testing")
}

输出(时间使用我的+01本地时区格式化):

代码语言:javascript
复制
{"level":"info","msg":"Testing","time":"2016-11-09T09:28:02+01:00"}

现在,让我们创建一个自定义log.Formatter,它切换到UTC:

代码语言:javascript
复制
type UTCFormatter struct {
    log.Formatter
}

func (u UTCFormatter) Format(e *log.Entry) ([]byte, error) {
    e.Time = e.Time.UTC()
    return u.Formatter.Format(e)
}

func main() {
    log.SetFormatter(UTCFormatter{&log.JSONFormatter{}})
    log.Info("Testing")
}

输出(时间在UTC时区格式化):

代码语言:javascript
复制
{"level":"info","msg":"Testing","time":"2016-11-09T08:28:09Z"}
票数 10
EN

Stack Overflow用户

发布于 2016-11-09 08:25:36

您需要编写自己的logrus.Formatter实现。

代码语言:javascript
复制
type Formatter interface {
    Format(*Entry) ([]byte, error)
}

来源

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40502309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档