logrus 打印日志时间注意事项

问题描述

程序运行中打印时间 和 logrus打印日志时间 差距十几分钟

```go
日志打印处
log_init.LogIcmp.Info("Current time")
日志打印结果
{"func":"main.main","level":"info","msg":"Current time","time":"2024-01-09 14:02:45"}
```

```go

程序运行中打印时间
fmt.Println("Current time:", time.Now().Format("2006-01-02 15:04:05"))
Current time: 2024-01-09 14:45:51
```

```go

logrus 日志初始化设置
LogMain.SetFormatter(&logrus.JSONFormatter{
    TimestampFormat: "2006-01-02 15:04:05", // Change 15:03:04 to 15:04:05
    CallerPrettyfier: func(frame *runtime.Frame) (function string, file string) {
        return frame.Function, ""
    },
})
```
在Go语言中,time.Format方法的参数使用的是一种固定的格式化布局,这个布局是以Go的发布日——2006年1月2日15时4分5秒(对应于常量Mon Jan 2 15:04:05 MST 2006)为模板来指示时间的格式。这个字符串不是一个随意的日期,它是Go语言中时间格式化和解析的一个特殊参考,每个部分都有特定的含义:
● 2006: 表示年份
● 01: 表示月份
● 02: 表示日
● 15: 表示小时(24小时制)
● 04: 表示分钟
● 05: 表示秒
在使用 time.Format 方法时,必须使用上面这个准确的时间来指定你想要的格式,因为Go语言将使用这个布局字符串中的数字位置来识别相应的时间部分。比如,如果你想要小时和分钟,你就使用 "15:04" 作为格式字符串。

你可能感兴趣的:(golang,开发语言,后端)