一尘不染

如何更改Go日志包的日期/时间格式

go

当使用日志包时,Go输出类似

2009/11/10 23:00:00 Hello, world

如何将日期和时间格式更改为类似的格式dd.mm.yyy hh:mm:ss?示例(操场链接):

package main

import "log"

func main() {
    log.Println("Hello, playground")
}

阅读 282

收藏
2020-07-02

共1个答案

一尘不染

就像yed
posterior所说,您可以通过实现write函数来定义自定义io.Writer。您可能还想做一个log.SetFlags(0)来完全控制。这是一个更改日期格式以及添加一些日志级别信息的示例。

type logWriter struct {
}

func (writer logWriter) Write(bytes []byte) (int, error) {
    return fmt.Print(time.Now().UTC().Format("2006-01-02T15:04:05.999Z") + " [DEBUG] " + string(bytes))
}

func main() {

    log.SetFlags(0)
    log.SetOutput(new(logWriter))
    log.Println("This is something being logged!")
}

输出:

2016-03-21T19:54:28.563Z [DEBUG]这已被记录!

2020-07-02