我正在try 从Golang log软件包过渡到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")
}

这可以很好地编译和运行,但时间戳格式不变.有人能解释一下为什么它不起作用吗?

谢谢

推荐答案

我相信您希望将下面的字段设置为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

Go相关问答推荐

无法找到与golang、nginx和postquist进行的docker-compose./主要

Go GORM创建表,但不创建列

按键值排序字符串- Golang

GoFR HTTP服务初始化中Open遥测传输和超时配置的说明

如果values.yaml文件中不存在某个属性,如何返回默认的FALSE?

Redis:尽管数据存在,但 rdb.Pipelined 中出现redis:nil错误

如何确定泛型类型在运行时是否可比较?

如何根据地址和大小打印字符串

我应该先解锁然后再广播吗?

如何在 Go msgraph-sdk-go 中转发消息并包括抄送和/或密送收件人?

我的神经网络(从头开始)训练,让它离目标更远

我突然无法再将我的 GoLang 应用程序部署到 Google AppEngine

如何使用管理员权限启动 powershell 进程并重定向标准输入 (os.exec)

emersion/go-imap - imap.FetchRFC822:无效内存地址或零指针取消引用

Go gmail api 快速入门导致本地主机拒绝连接 ERR_CONNECTION_REFUSED

在 Gorm 的 AfterFind() 钩子中获取智能 Select struct 的值

Golang泛型在用作 map 元素时不起作用

如何获得Ent中数字列的总和

在 go (1.18) 的泛型上实现多态的最佳方法是什么?

关于GO的几个问题