2016-11-09 320 views

回答

6

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

使用本地时区(不UTC)可能看起来像一个简单的用法:

import (
    log "github.com/Sirupsen/logrus" 
) 

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

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

{"level":"info","msg":"Testing","time":"2016-11-09T09:28:02+01:00"} 

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

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时区):

{"level":"info","msg":"Testing","time":"2016-11-09T08:28:09Z"} 
+1

太干净了。我喜欢它。 –

1

你需要编写自己的logrus.Formatter执行力度。

type Formatter interface { 
    Format(*Entry) ([]byte, error) 
} 

Source

相关问题