go日志记录

发布于:2024-04-30 ⋅ 阅读:(34) ⋅ 点赞:(0)

大家在日常的开发中,肯定会遇到很多异常,但是项目部署到线上之后又如何记录这些异常呢?又为什么要记录这些异常呢?记录这些异常可以很快的帮助大家,快速的定位到某一处bug,帮助我们很快的解决,这样一来就增加了我们的摸鱼时间,但是这些异常该记录在哪里呢?大家肯定能相当是文件中,那么如何记录到文件中呢? 这里我帮大家写好了一个好的util,喜欢的朋友可以评论楼

var GlobalLogInfo *LogInfo

func NewLogFile(logFilePath string) {
	//	这里我用的是日期来作为文件的名称
	currentDateString := getTodayDate()
	GlobalLogInfo = &LogInfo{}
	GlobalLogInfo.setPath(logFilePath + currentDateString + ".log")
}

type LogInfo struct {
	logFilePath string
}
//	这里是设置log文件保存的路径
func (logInfo *LogInfo) setPath(logFilePath string) {
	logInfo.logFilePath = logFilePath
}

func (logInfo *LogInfo) initLogInfo() *os.File {
	logInfoFile, err := os.OpenFile(logInfo.logFilePath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
	if err != nil {
		log.Fatal(err)
	}
	return logInfoFile
}

func (logInfo *LogInfo) WriterLog(errMessage any) {
	logFileObj := logInfo.initLogInfo()
	defer logFileObj.Close()
	log.SetOutput(logFileObj)
	//	要以什么样的格式输入到文件中
	log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
	log.Println(errMessage)
}

func getTodayDate() string {
	currentDate := time.Now()
	formattedTime := currentDate.Format("2006-01-02")
	return formattedTime
}

网站公告

今日签到

点亮在社区的每一天
去签到