package logUtil import ( "fmt" "runtime" "strings" ) const ( con_MIN_SKIP = 1 con_MAX_SKIP = 10 ) // InfoLog 信息日志记录 // format:日志格式 // args:参数列表 func InfoLog(format string, args ...interface{}) { for _, log := range logs { log.InfoLog(format, args...) } } // WarnLog 警告日志记录 // format:日志格式 // args:参数列表 func WarnLog(format string, args ...interface{}) { for _, log := range logs { log.WarnLog(format, args...) } } // DebugLog 调试日志记录 // format:日志格式 // args:参数列表 func DebugLog(format string, args ...interface{}) { for _, log := range logs { log.DebugLog(format, args...) } } // ErrorLog 错误日志记录 // format:日志格式 // args:参数列表 func ErrorLog(format string, args ...interface{}) { for _, log := range logs { log.ErrorLog(format, args...) } } // FatalLog 致命错误日志记录 // format:日志格式 // args:参数列表 func FatalLog(format string, args ...interface{}) { for _, log := range logs { log.FatalLog(format, args...) } } // Close // @description: 关闭日志 // parameter: // @waitFinish:是否等待关闭完成 // return: func Close(waitFinish bool) { for _, log := range logs { log.CloseLog(waitFinish) } } //--------------------------Deprecated methods start---------------------------- // Log 日志记录 // Deprecated: use XXXLog api instead func Log(logInfo string, lv LogType, ifIncludeHour bool) { switch lv { case Info: InfoLog(logInfo) case Warn: WarnLog(logInfo) case Debug: DebugLog(logInfo) case Error: ErrorLog(logInfo) case Fatal: FatalLog(logInfo) } } // NormalLog 日志记录 // Deprecated: use XXXLog api instead func NormalLog(logInfo string, level LogType) { Log(logInfo, level, true) } // LogAndPrint 日志记录 // Deprecated: use XXXLog api instead func LogAndPrint(logInfo string, level LogType) { NormalLog(logInfo, level) fmt.Println(logInfo) } // LogUnknownError 日志记录 func LogUnknownError(r interface{}, args ...string) { buf := strings.Builder{} buf.WriteString(fmt.Sprintf("通过recover捕捉到的未处理异常:%v \n", r)) // 获取附加信息 if len(args) > 0 { buf.WriteString("附加信息:") buf.WriteString(strings.Join(args, "-")) buf.WriteString("\n") } // 获取堆栈信息 for skip := con_MIN_SKIP; skip <= con_MAX_SKIP; skip++ { _, file, line, ok := runtime.Caller(skip) if !ok { break } buf.WriteString(fmt.Sprintf("skip = %d, file = %s, line = %d \n", skip, file, line)) buf.WriteString("\n") } ErrorLog(buf.String()) } //--------------------------Deprecated methods end----------------------------