这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
日志:
日志是记录系统运行过程中各种重要信息的文件,在系统运行过程中由各进程创建并记录。
日志作用:
1). 打印调试:即可以用日志记录变量或记录一段逻辑。记录程序运行的流程,即程序运行了那些代码,方便排查逻辑问题。
2). 问题定位:程序出异常或者出谷中时快速定位问题,方便后期解决问题。因为线上无法debug,在测试环境模拟一套生产环境,费时费力。所以依靠日志记录的信息定位问题,这点非常重要。
3). 用户行为日志:记录用户的操作欣慰,用于大数据分析,比如监控、风控、推荐等等。这种日志,一般是给其他团队分析使用,而且可能是多个团队,因此一般会有一定的格式要求,开发者应该按照这个格式来记录,便于其他团队的使用。当然,要记录哪些行为、操作,一般也是约定好的,因此,开发者主要是执行的角色。
4). 根因分析 :即在关键地方记录日志。方便在和各个终端定位问题时,可以定位到到底是谁的问题
日志类型:
stats统计日志、monitor诊断日志、vist访问日志
Go语言日志:
初始化日志记录器:
func InitLoggerUtil() {
locationlFile, _ := os.OpenFile("/Users/csq/Desktop/csq.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0744)
log.SetOutput(locationlFile)
}
Go Logger缺点:
- 其实Go Logger的优点在于它的使用是非常之简单,只要你向里面写,它就会被写入到指定的日志文件中去.
2.但是它的日志级别只有一个Print,这显然是不够的,因为我们项目中常用的是INFO/DEBUG等多个级别.
3.对于错误日志的处理,有Fatal和Panic,一般Fatal日志通过调用os.Exit(1)来结束程序,而Panic日志在写入日志消息之后抛出 一个panic,最重要的ERROR日志级别,恰恰是在不抛出panic或退出程序的情况下记录错误,而它没有.
4.不提供日志切割的能力.