128 lines
2.6 KiB
Plaintext
128 lines
2.6 KiB
Plaintext
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----------------------------
|