2016-03-24 13 views
5

Sto provando a passare dal pacchetto log Golang a Logrus. Il mio problema riguarda la personalizzazione del formato timestamp dei messaggi registrati. L'impostazione predefinita è un contatore di secondi dall'inizio ma desidero un formato "2016-03-24 17:10:15". Il mio codice di prova semplice è:Formattazione data/ora 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") 
} 

Questo file viene compilato correttamente ma il formato di data e ora non è stato modificato. Qualcuno può offrire alcune informazioni sul perché non funziona?

Grazie

risposta

9

credo che si desidera impostare il seguente campo alla true per abilitare abilitare il timestamp durante l'esecuzione da soli con un TTY allegato.

Dalla documentazione logrus.TextFormatter:

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

Ottimizzare il tuo esempio fornito:

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") 
} 

produce:

$ go run main.go 
INFO[0000] Hello Walrus before FullTimestamp=true 
INFO[2016-03-24 20:18:56] Hello Walrus after FullTimestamp=true