2016-11-09 318 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

相關問題