mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-25 20:51:52 +08:00
refactor(logging): 重构日志级别为层级过滤设计
- LogLevel 从 string 改为 int 类型,支持层级比较 - 层级设计:Debug(0) < Base(1) < Info(2) < Success(3) < Vuln(4) < Error(5) - 设置一个级别后,显示该级别及以上的日志 - Error 级别始终显示,不会被配置过滤掉 - 保留向后兼容别名(LevelAll, LevelInfoSuccess 等) - 更新测试以匹配新的层级过滤行为
This commit is contained in:
@@ -128,33 +128,14 @@ func (l *Logger) log(level LogLevel, content string) {
|
||||
}
|
||||
|
||||
// shouldLog 检查是否应该记录该级别的日志
|
||||
// 层级过滤:消息级别 >= 配置级别 时显示,Error 始终显示
|
||||
func (l *Logger) shouldLog(level LogLevel) bool {
|
||||
switch l.config.Level {
|
||||
case LevelAll:
|
||||
// Error 级别始终显示
|
||||
if level == LevelError {
|
||||
return true
|
||||
case LevelError:
|
||||
return level == LevelError
|
||||
case LevelVuln:
|
||||
return level == LevelVuln
|
||||
case LevelBase:
|
||||
return level == LevelBase
|
||||
case LevelInfo:
|
||||
return level == LevelInfo
|
||||
case LevelSuccess:
|
||||
return level == LevelSuccess
|
||||
case LevelDebug:
|
||||
return level == LevelDebug
|
||||
case LevelInfoSuccess:
|
||||
return level == LevelInfo || level == LevelSuccess || level == LevelVuln
|
||||
case LevelBaseInfoSuccess:
|
||||
return level == LevelBase || level == LevelInfo || level == LevelSuccess || level == LevelVuln
|
||||
default:
|
||||
// 向后兼容:字符串"debug"显示所有
|
||||
if string(l.config.Level) == "debug" {
|
||||
return true
|
||||
}
|
||||
return level == LevelInfo || level == LevelSuccess || level == LevelVuln
|
||||
}
|
||||
// 层级过滤:消息级别 >= 配置级别
|
||||
return level >= l.config.Level
|
||||
}
|
||||
|
||||
// outputMessage 输出消息
|
||||
|
||||
Reference in New Issue
Block a user