Skip to content

Commit 27c393b

Browse files
committed
feat(logger): 改进日志格式以支持键值对参数
1 parent 365a7de commit 27c393b

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

pkg/logger/logger.go

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package logger
22

33
import (
4+
"fmt"
45
"log"
56
"os"
7+
"strings"
68
)
79

810
var (
@@ -11,46 +13,70 @@ var (
1113

1214
// Init 初始化日志
1315
func Init() {
14-
Logger = log.New(os.Stdout, "", log.LstdFlags|log.Lshortfile)
16+
Logger = log.New(os.Stdout, "", log.LstdFlags)
17+
}
18+
19+
// formatKeyValues 格式化键值对参数
20+
func formatKeyValues(args ...interface{}) string {
21+
if len(args) == 0 {
22+
return ""
23+
}
24+
25+
var parts []string
26+
for i := 0; i < len(args); i += 2 {
27+
if i+1 < len(args) {
28+
key := fmt.Sprintf("%v", args[i])
29+
value := fmt.Sprintf("%v", args[i+1])
30+
parts = append(parts, fmt.Sprintf("%s=%s", key, value))
31+
} else {
32+
// 奇数个参数,最后一个单独处理
33+
parts = append(parts, fmt.Sprintf("%v", args[i]))
34+
}
35+
}
36+
37+
if len(parts) > 0 {
38+
return " " + strings.Join(parts, " ")
39+
}
40+
return ""
1541
}
1642

1743
// Debug 记录调试日志
1844
func Debug(msg string, args ...interface{}) {
1945
if Logger == nil {
2046
return
2147
}
22-
Logger.Printf("[DEBUG] "+msg, args...)
48+
Logger.Printf("[DEBUG] %s%s", msg, formatKeyValues(args...))
2349
}
2450

2551
// Info 记录信息日志
2652
func Info(msg string, args ...interface{}) {
2753
if Logger == nil {
2854
return
2955
}
30-
Logger.Printf("[INFO] "+msg, args...)
56+
Logger.Printf("[INFO] %s%s", msg, formatKeyValues(args...))
3157
}
3258

3359
// Warn 记录警告日志
3460
func Warn(msg string, args ...interface{}) {
3561
if Logger == nil {
3662
return
3763
}
38-
Logger.Printf("[WARN] "+msg, args...)
64+
Logger.Printf("[WARN] %s%s", msg, formatKeyValues(args...))
3965
}
4066

4167
// Error 记录错误日志
4268
func Error(msg string, args ...interface{}) {
4369
if Logger == nil {
4470
return
4571
}
46-
Logger.Printf("[ERROR] "+msg, args...)
72+
Logger.Printf("[ERROR] %s%s", msg, formatKeyValues(args...))
4773
}
4874

4975
// Fatal 记录致命错误日志并退出
5076
func Fatal(msg string, args ...interface{}) {
5177
if Logger == nil {
5278
os.Exit(1)
5379
}
54-
Logger.Printf("[FATAL] "+msg, args...)
80+
Logger.Printf("[FATAL] %s%s", msg, formatKeyValues(args...))
5581
os.Exit(1)
5682
}

0 commit comments

Comments
 (0)