2016-03-24 20 views
5

Tôi đang cố chuyển đổi từ gói nhật ký Golang thành Logrus. Vấn đề của tôi là làm thế nào để tùy chỉnh định dạng dấu thời gian của các thông điệp đã đăng nhập. Mặc định là bộ đếm giây kể từ khi bắt đầu nhưng tôi muốn định dạng "2016-03-24 17:10:15". Mã thử nghiệm đơn giản của tôi là:Định dạng dấu thời gian Logrus

package main 

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

func main() { 
     customFormatter := new(logrus.TextFormatter) 
     customFormatter.TimestampFormat = "2006-01-02 15:04:05" 
     logrus.SetFormatter(customFormatter) 
     logrus.Info("Hello Walrus") 
} 

Việc biên dịch và chạy tốt nhưng định dạng dấu thời gian không thay đổi. Bất cứ ai có thể cung cấp một số cái nhìn sâu sắc về lý do tại sao nó không hoạt động?

Cảm ơn

Trả lời

9

Tôi tin rằng bạn muốn đặt trường sau thành true để bật dấu thời gian khi tự chạy nó với TTY được đính kèm.

Từ các tài liệu logrus.TextFormatter:

// Enable logging the full timestamp when a TTY is attached instead of just 
// the time passed since beginning of execution. 
FullTimestamp bool 

Tinh chỉnh ví dụ mà bạn cung cấp:

package main 

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

func main() { 
    customFormatter := new(logrus.TextFormatter) 
    customFormatter.TimestampFormat = "2006-01-02 15:04:05" 
    logrus.SetFormatter(customFormatter) 
    logrus.Info("Hello Walrus before FullTimestamp=true") 
    customFormatter.FullTimestamp = true 
    logrus.Info("Hello Walrus after FullTimestamp=true") 
} 

Tạo:

$ go run main.go 
INFO[0000] Hello Walrus before FullTimestamp=true 
INFO[2016-03-24 20:18:56] Hello Walrus after FullTimestamp=true 
Các vấn đề liên quan