From 05a028bbb34f6bef7343ca6bfda6ec37a979ad84 Mon Sep 17 00:00:00 2001 From: AI Engineer Date: Tue, 5 May 2026 17:34:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=93=E9=AA=8C=E5=AF=B9=E9=BD=90=E4=B8=8E?= =?UTF-8?q?=E7=94=9F=E6=80=81=E5=90=8C=E6=AD=A5=E5=8F=91=E5=B8=83=EF=BC=88?= =?UTF-8?q?by=20AI=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ go.mod | 2 +- logger.go | 9 ++++++++- viewer.go | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a217a0b..047d7a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [1.1.1] - 2026-05-05 +- **体验对齐**: + - 修复 `viewer.go` 中空错误字符串导致日志类型被跳过显示的 Bug。 + - `Log` 方法集成 `fillBase` 自动补全逻辑,对于直接调用 `Log(entry)` 的自定义日志类型,若未设置时间戳则自动填充元数据,无需手动干预。 +- **生态同步**: 依赖 `config` 升级至 v1.0.5。 + ## [1.1.0] - 2026-05-05 - **性能质变**: - `GetEntry` 改为泛型实现 `GetEntry[T]()`,消除 `reflect.Type` 传参及运行时类型断言。 diff --git a/go.mod b/go.mod index 091ef35..23283aa 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.25.0 require ( apigo.cc/go/cast v1.2.6 - apigo.cc/go/config v1.0.4 + apigo.cc/go/config v1.0.5 apigo.cc/go/shell v1.0.4 ) diff --git a/logger.go b/logger.go index 0c7e122..fbefcc8 100644 --- a/logger.go +++ b/logger.go @@ -161,6 +161,11 @@ func NewLogger(conf Config) *Logger { } func (logger *Logger) Log(entry LogEntry) { + // 如果是自动生成的 LogType(如 Debug/Info/Warning/Error 对应的类型),这里通常已经在方法内 fillBase 了 + // 但对于像 discover.Log 这样直接调用 Log(entry) 的,需要在这里补全 + if entry.GetBaseLog().LogTime == 0 { + logger.fillBase(entry, "") + } logger.asyncWrite(entry) } @@ -201,7 +206,9 @@ func (logger *Logger) fillBase(entry LogEntry, logType string) { } base.LogName = logger.config.Name - base.LogType = logType + if logType != "" { + base.LogType = logType + } base.LogTime = time.Now().UnixNano() base.TraceId = logger.traceId base.ImageName = dockerImageName diff --git a/viewer.go b/viewer.go index dd0692a..0d175c2 100644 --- a/viewer.go +++ b/viewer.go @@ -39,7 +39,7 @@ func Viewable(line string) string { level := "" for _, k := range []string{"info", "warning", "error", "debug"} { - if b.Extra[k] != nil { + if v := b.Extra[k]; v != nil && cast.String(v) != "" { level = k break }