🐛 fix: truncate sanitized log values without full rune copy

This commit is contained in:
2026-07-16 21:58:54 +07:00
parent 3c6950573f
commit 9995557ae2
+7 -5
View File
@@ -47,18 +47,20 @@ func sanitizeN(value any, maxLength int) string {
str = fmt.Sprint(v) str = fmt.Sprint(v)
} }
var b strings.Builder var b strings.Builder
count := 0
for _, r := range str { for _, r := range str {
if count >= maxLength {
b.WriteRune('…')
return b.String()
}
if r < 0x20 || (r >= 0x7f && r <= 0x9f) { if r < 0x20 || (r >= 0x7f && r <= 0x9f) {
b.WriteRune('') b.WriteRune('')
} else { } else {
b.WriteRune(r) b.WriteRune(r)
} }
count++
} }
out := []rune(b.String()) return b.String()
if len(out) > maxLength {
return string(out[:maxLength]) + "…"
}
return string(out)
} }
func emit(level logLevel, name string, stream *os.File, args []any) { func emit(level logLevel, name string, stream *os.File, args []any) {