Files
fscan/common/logger.go
T
ZacharyZcR 5ebdbd3aa2 feat: 优化日志颜色方案,区分漏洞和普通信息
- 新增 LogVuln 级别(红色),用于漏洞和重要发现
- 密码爆破成功、未授权访问、POC漏洞等改用红色显示
- 普通信息(扫描统计等)改为白色
- Web指纹保持绿色
2026-01-17 13:21:43 +08:00

83 lines
1.9 KiB
Go

package common
/*
logger.go - 日志系统简化接口
提供统一的日志API,底层使用logging包实现。
*/
import (
"strings"
"sync"
"github.com/shadow1ng/fscan/common/logging"
)
var (
globalLogger *logging.Logger
loggerOnce sync.Once
)
func getGlobalLogger() *logging.Logger {
loggerOnce.Do(func() {
fv := GetFlagVars()
level := getLogLevelFromString(fv.LogLevel)
config := &logging.LoggerConfig{
Level: level,
EnableColor: !fv.NoColor,
SlowOutput: false,
ShowProgress: !fv.DisableProgress,
StartTime: GetGlobalState().GetStartTime(),
}
globalLogger = logging.NewLogger(config)
globalLogger.SetCoordinatedOutput(LogWithProgress)
})
return globalLogger
}
func getLogLevelFromString(levelStr string) logging.LogLevel {
switch strings.ToLower(levelStr) {
case "all":
return logging.LevelAll
case "error":
return logging.LevelError
case "base":
return logging.LevelBase
case "info":
return logging.LevelInfo
case "success":
return logging.LevelSuccess
case "debug":
return logging.LevelDebug
case "info,success":
return logging.LevelInfoSuccess
case "base,info,success", "base_info_success":
return logging.LevelBaseInfoSuccess
default:
return logging.LevelInfoSuccess
}
}
// InitLogger 初始化日志系统
func InitLogger() {
getGlobalLogger().Initialize()
}
// LogDebug 输出调试日志
func LogDebug(msg string) { getGlobalLogger().Debug(msg) }
// LogBase 输出基础日志
func LogBase(msg string) { getGlobalLogger().Base(msg) }
// LogInfo 输出信息日志
func LogInfo(msg string) { getGlobalLogger().Info(msg) }
// LogSuccess 输出成功日志(Web指纹等)
func LogSuccess(result string) { getGlobalLogger().Success(result) }
// LogVuln 输出漏洞/重要发现日志(密码成功、漏洞等)
func LogVuln(result string) { getGlobalLogger().Vuln(result) }
// LogError 输出错误日志
func LogError(errMsg string) { getGlobalLogger().Error(errMsg) }