goProject/.svn/pristine/e6/e66a0722abcc4bff624523c02c220ea0387d4b9e.svn-base
2025-01-06 16:21:36 +08:00

147 lines
3.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package logUtilPlus
import (
"fmt"
"goutil/debugUtil"
"goutil/esLogUtil"
"goutil/logUtil"
"log"
"strings"
)
var (
enableDebugLog = true
enableInfoLog = true
enableWarnLog = true
)
// 设置日志级别
// debug / all 时全部开启
// info 记录 info/warn/error/fatal
// warn 记录 warn/error/fatal
// error 记录 error/fatal
func SetLevel(level string) {
// 大写不敏感
level = strings.ToLower(level)
//全部开启
if level == "debug" || level == "all" {
// debug / all 时全部开启
enableInfoLog = true
enableDebugLog = true
enableWarnLog = true
} else if level == "info" {
// info 记录 info/warn/error/fatal
enableDebugLog = false
enableInfoLog = true
enableWarnLog = true
} else if level == "warn" {
// warn 记录 warn/error/fatal
enableDebugLog = false
enableInfoLog = false
enableWarnLog = true
} else if level == "error" {
// error 记录 error/fatal
enableInfoLog = false
enableDebugLog = false
enableWarnLog = false
}
}
// 启动ES日志系统(不调用则不启动ES日志系统默认记录本地)
// 参数:
//
// esUrlsES地址(多个地址使用,分割)
// nameIndexName
// serverGroupId服务器组Id
//
// 返回值:
//
// 结果状态
func Start(esUrls string, name string, serverGroupId int32) {
esLogUtil.Start(esUrls, name, serverGroupId)
}
// 停止服务
func Stop() {
esLogUtil.Stop()
}
// 调试日志
func InfoLog(format string, args ...interface{}) {
if !enableInfoLog {
return
}
PrintAndWriteLog(logUtil.Info, format, args...)
}
// 警告日志
func WarnLog(format string, args ...interface{}) {
if !enableWarnLog {
return
}
PrintAndWriteLog(logUtil.Warn, format, args...)
}
// 调试日志
func DebugLog(format string, args ...interface{}) {
if !enableDebugLog {
return
}
PrintAndWriteLog(logUtil.Debug, format, args...)
}
// 错误日志
func ErrorLog(format string, args ...interface{}) {
PrintAndWriteLog(logUtil.Error, format, args...)
}
// 致命错误日志
func FatalLog(format string, args ...interface{}) {
PrintAndWriteLog(logUtil.Fatal, format, args...)
}
// 打印到控制台并写日志
func PrintAndWriteLog(logType logUtil.LogType, format string, args ...interface{}) {
//控制台打印一行
PrintLog(format, args...)
if len(args) <= 0 {
logUtil.NormalLog(format, logType)
esLogUtil.NormalLog(format, logType)
} else {
logUtil.NormalLog(fmt.Sprintf(format, args...), logType)
esLogUtil.NormalLog(fmt.Sprintf(format, args...), logType)
}
if debugUtil.IsDebug() && (logType == logUtil.Warn || logType == logUtil.Error || logType == logUtil.Fatal) {
StdLog(format, args...)
}
}
// 控制台打印
func PrintLog(format string, args ...interface{}) {
//避免非DEBUG模式下组装字符串提前判断一次
if debugUtil.IsDebug() {
debugUtil.Println(fmt.Sprintf(format, args...))
}
}
// 标准库控制台输出打印
func StdLog(format string, args ...interface{}) {
if len(args) <= 0 {
log.Print(format)
} else {
log.Print(fmt.Sprintf(format, args...))
}
}
// 记录未知错误日志
// 参数:
//
// errrecover获取到的错误对象
// args附加参数
func LogUnknownError(err interface{}, args ...string) {
logUtil.LogUnknownError(err, args...)
}