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----------------------------
|