发布于2026-07-13 阅读(0)
扫一扫,手机访问
在CentOS下做Golang开发,日志格式这事儿看着不起眼,但真到了排查线上问题的时候,格式乱不乱、信息全不全,直接决定你是十分钟定位故障还是半小时抓瞎。标准库 log 虽然轻量,但定制能力同样够用;如果你需要更高级的功能,还可以上 logrus 或 zap。今天先聊聊怎么用标准库把日志格式玩出花样。

第一步,创建一个 Go 程序文件,比如就叫 main.go。这是基本功,不赘述。
第二步,导入必要的包。标准库 log 和 os 就够了:
package main
import (
"log"
"os"
)
第三步,定义你想要的日志格式。这里用 log.LstdFlags 做底子,再加上自定义的前缀和后缀:
const customLogFormat = "[$(date +%Y-%m-%d\ %H:%M:%S)] [%(levelname)s] [%(message)s]"
第四步,在 main 函数里配置日志输出。把输出目标设为控制台,顺便加上行号和前缀,方便定位:
func main() {
// 设置日志输出格式
log.SetFlags(log.LstdFlags | log.Lshortfile)
log.SetPrefix("INFO: ")
log.SetOutput(os.Stdout)
// 使用自定义日志格式
log.Printf(customLogFormat, "This is a custom log message")
// 其他代码...
}
第五步,编译运行:
$ go build main.go
$ ./main
跑起来之后,你应该能看到按你定制的格式输出的日志。想改格式?直接调整 customLogFormat 里的字符串就行。比如把时间格式换成 2006-01-02 15:04:05,或者加个日志级别字段,都很简单。
如果你觉得标准库的功能不够用——比如需要结构化日志、字段过滤、不同输出目标——那就可以考虑上 logrus 或 zap。它们都提供了高度灵活的配置接口,定制起来会更顺手。不过话说回来,标准库在多数场景下已经够用,关键是理解它的核心机制:通过 SetFlags 控制时间、文件、行号等内置信息,通过 SetPrefix 固定前缀,再用 log.Printf 传递自定义占位符。掌握了这些,基本上就能覆盖日常需求。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8