Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Logrus timestamp formatting

Tags:

logging

go

I'm trying to transition from the Golang log package to Logrus. My issue is around how to customize the timestamp format of logged messages. The default is a counter of seconds since start but I want a "2016-03-24 17:10:15" format. My simple test code is:

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

This compiles and runs fine but the timestamp format is unchanged. Can anyone offer some insight into why it isn't working?

Thanks

like image 890
Steve Crook Avatar asked Mar 24 '16 17:03

Steve Crook


People also ask

Is logrus thread safe?

Thread safetyBy default, Logger is protected by a mutex for concurrent writes. Except when it isn't. Most of the non-thread-safe cases are bugs which will occur only in rare situations. Whether any of them matter to you depends, of course, on your use case.

What is logrus?

Logrus is a structured logger for Go (golang), completely API compatible with the standard library logger.


1 Answers

I believe you want to set the following field to true to enable the timestamp when running it yourself with a TTY attached.

From the logrus.TextFormatter documentation:

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

Tweaking your provided example:

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

Produces:

$ go run main.go
INFO[0000] Hello Walrus before FullTimestamp=true
INFO[2016-03-24 20:18:56] Hello Walrus after FullTimestamp=true
like image 186
Brian Avatar answered Sep 18 '22 20:09

Brian