当使用log package时,Go输出类似

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

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

package main

import "log"

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

推荐答案

就像ye After所说的那样,您可以通过实现一个write函数来定义一个自定义io.Writer.您可能还希望执行log.SetFlags(0)以获得完全控制.下面是一个更改日期格式并添加一些日志(log)级别信息的示例.

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[调试]这是被记录的东西!

Go相关问答推荐

Golang socks 5代理,流量限制转发到下一个socks 5代理

Golang ==错误:OCI运行时创建失败:无法启动容器进程:exec:./" bin:stat./" bin:没有这样的文件或目录:未知

在GO中创建[]字符串类型的变量

戈姆:如何将一对一联系起来?

如何模拟go的Elastic search SDK?

我可以扫描表中每个项目的最高范围键值吗?

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

使用golang sqlc中的引用参数

使用 os/exec 和在命令行执行之间的结果莫名其妙地不同

使用 ssh 从私有 gilab 仓库导入一个 go 项目:未知修订

确保 Go 1.20 编译时的严格可比性?

无法使用 Golang 扫描文件路径

Go 中的 HTTP 请求验证中间件

使用无服务器工作流 go sdk 时出现间歇性 JSON 解组错误

如何在gin中获取参数值数组

有没有办法在 golang 中定义可索引类型?

防止在 Go 公用文件夹中列出目录

函数参数的判断顺序是什么?

golangci-lint 的 GitHub 操作失败,无法加载 fmt

Gin中测试模式有什么用