当前位置:
首页>
游戏>
手游 > 2023上海最近3天疫情情况_网站开发四个重点_深圳经济最新新闻_培训机构加盟店排行榜
2023上海最近3天疫情情况_网站开发四个重点_深圳经济最新新闻_培训机构加盟店排行榜
时间:2025/7/12 19:06:42来源:https://blog.csdn.net/chxii/article/details/146341355 浏览次数:0次
2023上海最近3天疫情情况_网站开发四个重点_深圳经济最新新闻_培训机构加盟店排行榜
核心功能与接口
- 基础日志输出
- Print 系列:支持
Print()
、Println()
、Printf()
,输出日志不中断程序。 log.Print("常规日志") // 输出: 2025/03/18 14:47:13 常规日志
log.Printf("格式化: %s", "数据")
- Fatal 系列:调用后触发
os.Exit(1)
终止程序,不会执行 defer 函数。 log.Fatal("严重错误") // 输出日志并退出
- Panic 系列:输出日志后触发
panic()
,可通过 recover()
捕获。 defer func() { if err := recover(); err != nil {} }()
log.Panic("触发崩溃")
- 预定义 Logger
- 默认使用
log.Stdout
输出到控制台,可通过 log.SetOutput()
重定向到文件或网络。
配置与定制
- 设置日志前缀
log.SetPrefix("APP: ")
添加固定前缀,如 APP: 2025/03/18 14:47:13 日志内容
。
- 调整日志格式
- 自定义 Logger 对象
- 使用
log.New()
创建独立 Logger,支持多目标输出:
var (DebugLog = log.New(os.Stdout, "DEBUG: ", log.Ldate|log.Ltime|log.Lshortfile)InfoLog = log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime)ErrorLog = log.New(os.Stderr, "ERROR: ", log.Ldate|log.Ltime|log.Llongfile)
)func main() {DebugLog.Println("调试信息")
// DEBUG: 2023/10/01 12:00:00 /path/main.go:15InfoLog.Printf("用户登录: %s", "user123")
// INFO: 2023/10/01 12:00:00 用户登录: user123ErrorLog.Fatal("数据库连接失败")
// ERROR: 2023/10/01 12:00:00 /path/main.go:18
}
-
// 输出到文件
file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {log.Fatal("打开文件失败:", err)
}
defer file.Close()// 设置全局日志输出
log.SetOutput(file)// 同时输出到文件和标准错误
multiWriter := io.MultiWriter(file, os.Stderr)
log.SetOutput(multiWriter)
-
log.SetOutput(io.Discard)
关闭日志
与 fmt 包的差异
特性 | log 包 | fmt 包 |
---|
输出目标 | 默认 stderr,可自定义(文件/网络) | 默认 stdout |
时间戳 | 支持自动添加 | 无 |
并发安全 | 是(内置互斥锁) | 否 |
程序中断 | 支持 Fatal/Panic 中断 | 仅输出内容 |
适用场景 | 正式日志记录 | 临时调试输出 |
关键字:2023上海最近3天疫情情况_网站开发四个重点_深圳经济最新新闻_培训机构加盟店排行榜
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
责任编辑: