Logrus时间戳格式化

时间:2016-03-24 17:17:01

标签: logging go

我正在尝试从Golang日志包转换为Logrus。我的问题是如何自定义记录消息的时间戳格式。默认是自开始以来的秒数计数器,但我想要一个“2016-03-24 17:10:15”格式。我的简单测试代码是:

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

这编译并运行正常,但时间戳格式保持不变。任何人都可以提供一些有关它无法正常工作的见解吗?

由于

1 个答案:

答案 0 :(得分:16)

我相信您希望将以下字段设置为true,以便在连接TTY时自行运行时启用时间戳。

来自logrus.TextFormatter文档:

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

调整您提供的示例:

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

产地:

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