mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00

主要清理内容: - logging包:移除DetailedFormatter、JSONFormatter及相关方法 - output包:清理Manager和Statistics中的未使用方法 - parsers包:移除各Parser中的Validate()和GetStatistics()方法 - proxy包:清理Factory和Global中的所有未使用函数 - ProgressManager:移除未使用的进度条方法和字段 - globals:清理未使用的status变量 技术改进: - 使用deadcode和golangci-lint工具系统性检测 - 保持代码结构清晰,添加清理注释 - 修复相关依赖引用问题 - 确保编译通过和功能正常 代码减少:移除约40个死代码函数和多个未使用字段
76 lines
2.0 KiB
Go
76 lines
2.0 KiB
Go
package logging
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
// StandardFormatter 标准日志格式化器
|
|
type StandardFormatter struct {
|
|
startTime time.Time
|
|
}
|
|
|
|
// NewStandardFormatter 创建标准格式化器
|
|
func NewStandardFormatter() *StandardFormatter {
|
|
return &StandardFormatter{
|
|
startTime: time.Now(),
|
|
}
|
|
}
|
|
|
|
// SetStartTime 设置开始时间
|
|
func (f *StandardFormatter) SetStartTime(startTime time.Time) {
|
|
f.startTime = startTime
|
|
}
|
|
|
|
// Format 格式化日志条目
|
|
func (f *StandardFormatter) Format(entry *LogEntry) string {
|
|
elapsed := time.Since(f.startTime)
|
|
timeStr := f.formatElapsedTime(elapsed)
|
|
prefix := f.getLevelPrefix(entry.Level)
|
|
|
|
return fmt.Sprintf("[%s] %s %s", timeStr, prefix, entry.Content)
|
|
}
|
|
|
|
// formatElapsedTime 格式化经过的时间
|
|
func (f *StandardFormatter) formatElapsedTime(elapsed time.Duration) string {
|
|
switch {
|
|
case elapsed < time.Second:
|
|
// 毫秒显示,不需要小数
|
|
return fmt.Sprintf("%dms", elapsed.Milliseconds())
|
|
case elapsed < time.Minute:
|
|
// 秒显示,保留一位小数
|
|
return fmt.Sprintf("%.1fs", elapsed.Seconds())
|
|
case elapsed < time.Hour:
|
|
// 分钟和秒显示
|
|
minutes := int(elapsed.Minutes())
|
|
seconds := int(elapsed.Seconds()) % 60
|
|
return fmt.Sprintf("%dm%ds", minutes, seconds)
|
|
default:
|
|
// 小时、分钟和秒显示
|
|
hours := int(elapsed.Hours())
|
|
minutes := int(elapsed.Minutes()) % 60
|
|
seconds := int(elapsed.Seconds()) % 60
|
|
return fmt.Sprintf("%dh%dm%ds", hours, minutes, seconds)
|
|
}
|
|
}
|
|
|
|
// getLevelPrefix 获取日志级别前缀
|
|
func (f *StandardFormatter) getLevelPrefix(level LogLevel) string {
|
|
switch level {
|
|
case LevelSuccess:
|
|
return "[+]"
|
|
case LevelInfo:
|
|
return "[*]"
|
|
case LevelError:
|
|
return "[-]"
|
|
default:
|
|
return " "
|
|
}
|
|
}
|
|
|
|
// =============================================================================================
|
|
// 已删除的死代码(未使用):
|
|
// DetailedFormatter 及其 Format() 方法
|
|
// JSONFormatter 及其 SetStartTime() 和 Format() 方法
|
|
// =============================================================================================
|