Go标准库log包轻量易用,适合快速记录日志。默认通过log.Print、log.Printf、log.Println输出到stderr,带时间戳;可自定义logger控制输出目标、前缀和标志位,如log.New(os.Stdout, "[DEBUG] ", log.LstdFlags|log.Lshortfile);可通过log.SetOutput、SetPrefix、SetFlags修改全局logger,但需谨慎;不支持日志级别、轮转等高级功能,生产环境建议用zap等第三方库。

Go 标准库的 log 包轻量、易用,适合快速记录调试信息或简单服务日志,无需引入第三方依赖。
直接调用 log.Print、log.Printf 或 log.Println 即可输出带时间戳的日志(默认格式:2024/03/15 10:22:33 message)。
log.Print("hello") —— 不换行,不加额外空格log.Println("hello") —— 自动换行,参数间加空格log.Printf("user %s logged in at %v", "alice", time.Now()) —— 支持格式化,类似 fmt.Printf用 log.New 创建新 logger,可指定写入位置(如文件)、前缀和标志位:
writer := os.Stdout 或 os.File(如 os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644))"[INFO]")会在每条日志开头显示log.LstdFlags | log.Lshortfile(含日期时间 + 文件名:行号)示例:logger := log.New(os.Stdout, "[DEBUG] ", log.LstdFlags|log.Lshortfile)logger.Println("request received")
可通过 log.SetOutput、log.SetPrefix、log.SetFlags 修改默认 logger 行为,但会影响所有使用 log.Print* 的地方,多用于主函数初始化。
立即学习“go语言免费学习笔记(深入)”;
log.SetOutput(os.Stdout)log.SetPrefix("[APP] ")log.SetFlags(log.Ldate | log.Ltime | log.Lmicroseconds)log 包不支持日志级别(info/warn/error)、轮转、异步写入等高级功能。生产环境建议搭配 zap、zerolog 或 logrus;但写小工具、CLI 或原型时,标准 log 完全够用,且零依赖。
基本上就这些 —— 简单、直接、不花哨,正适合 Go 的哲学。
以上就是Golang如何实现简单日志_Golang log包语法入门的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号