log.Logger可通过log.New创建,自定义输出目标、前缀和标志。示例:输出到标准输出或文件,使用io.MultiWriter实现多目标输出,结合log.Ldate、log.Ltime等标志控制格式。

在Go语言中,log.Logger 是标准库 log 提供的一个灵活的日志记录器类型,允许自定义输出目标、前缀和标志。通过创建自定义的 log.Logger 对象,可以更好地控制日志格式和输出位置。
基本结构与创建方式
log.Logger 可以通过 log.New 函数创建,该函数接收三个参数:
io.Writer:指定日志输出位置(如文件、网络、os.Stdout等) prefix string:每条日志前添加的前缀 flag int:控制日志的元信息输出(如时间、文件名、行号等)示例代码:
package mainimport ( "io" "log" "os")func main() { // 创建一个输出到标准输出的日志器 logger := log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile) // 使用自定义logger输出日志 logger.Println("程序启动成功") logger.Printf("当前用户: %s", "alice")}
输出到文件
将日志写入文件是常见需求。只需将文件句柄作为 io.Writer 传入即可。
示例代码:
file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)if err != nil { log.Fatal("无法打开日志文件:", err)}defer file.Close()// 创建写入文件的日志器fileLogger := log.New(file, "DEBUG: ", log.LstdFlags|log.Lshortfile)fileLogger.Println("这是一条调试信息")
多目标输出(同时输出到控制台和文件)
使用 io.MultiWriter 可以让日志同时输出到多个目标。
大师兄智慧家政
58到家打造的AI智能营销工具
99 查看详情
立即学习“go语言免费学习笔记(深入)”;
示例代码:
file, _ := os.OpenFile("combined.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)defer file.Close()multiWriter := io.MultiWriter(os.Stdout, file)combinedLogger := log.New(multiWriter, "APP: ", log.LstdFlags|log.Lmicroseconds)combinedLogger.Println("这条日志会同时出现在终端和文件中")
常用日志标志说明
log包提供多个常量用于组合日志格式:
log.Ldate:输出日期,如 2025/04/05 log.Ltime:输出时间,如 14:30:45 log.Lmicroseconds:输出微秒级时间 log.Lshortfile:输出调用文件名和行号 log.LstdFlags:等于 Ldate | Ltime基本上就这些。根据实际场景选择合适的输出目标和格式即可。
以上就是Golang logLogger日志对象创建示例的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1108335.html
微信扫一扫
支付宝扫一扫

