1 Star 3 Fork 0

A-涛/xlog

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
level.go 1.93 KB
一键复制 编辑 原始数据 按行查看 历史
A-涛 提交于 2022-06-27 15:30 . init
package xlog
const (
LevelDebug = 1 << iota
LevelInfo
LevelWarn
LevelError
LevelPanic
LevelFatal
LevelDev = LevelDebug | LevelInfo | LevelWarn | LevelError | LevelFatal | LevelPanic
LevelProd = LevelInfo | LevelWarn | LevelError | LevelFatal | LevelPanic
)
var (
// level 的前缀字符串
defaultLevelPrefixes = map[int]string{
LevelDebug: "DEBU",
LevelInfo: "INFO",
LevelWarn: "WARN",
LevelError: "ERRO",
LevelPanic: "PANI",
LevelFatal: "FATA",
}
// level 颜色, 颜色参数格式: 格式:\033[显示方式;前景色;背景色m
levelColor = map[int]string{
-1: "\033[0m", // 重置
// LevelDebug: "DEBU",
LevelInfo: "\033[32m", // 绿色
LevelWarn: "\033[33m", // 黄色
LevelError: "\033[31m", // 红色
LevelPanic: "\033[35m", // 紫红色
LevelFatal: "\033[1;35m", // 加粗紫红色
}
)
// SetLevel 设置日志级别
func (x *XLogger) SetLevel(level int) {
x.config.Level = level | LevelPanic | LevelFatal
}
// GetLevel 获取配置的日志级别
func (x *XLogger) GetLevel() int {
return x.config.Level
}
// SetLevelPrefix 设置日志前缀
func (x *XLogger) SetLevelPrefix(level int, prefix string) {
x.config.LevelPrefixes[level] = prefix
}
// GetLevelPrefix 获取日志前缀
func (x *XLogger) GetLevelPrefix(level int) string {
return x.config.LevelPrefixes[level]
}
// getLevelPrefixWithBrackets
func (x *XLogger) getLevelPrefixWithBrackets(level int) string {
str, ok := x.config.LevelPrefixes[level]
if !ok {
str = defaultLevelPrefixes[level]
}
// 判断下是否需要对内容加颜色显示
// 1. 配置了打印颜色
// 2. 不写入日志文件(主要防止写入的 level 部分包含 \033xxx 字符扰乱日志)
if x.config.StdPrintLevelColor && x.config.FilePath == "" {
str = levelColor[level] + str + levelColor[-1] // 同时需要重置下
}
return "[" + str + "]"
}
// checkLevel
func (x *XLogger) checkLevel(level int) bool {
return x.config.Level&level > 0
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/xuesongtao/xlog.git
git@gitee.com:xuesongtao/xlog.git
xuesongtao
xlog
xlog
v1.0.5

搜索帮助