11package logger
22
33import (
4+ "fmt"
45 "log"
56 "os"
7+ "strings"
68)
79
810var (
@@ -11,46 +13,70 @@ var (
1113
1214// Init 初始化日志
1315func 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 记录调试日志
1844func 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 记录信息日志
2652func 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 记录警告日志
3460func 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 记录错误日志
4268func 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 记录致命错误日志并退出
5076func 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