@@ -10,9 +10,9 @@ import (
10
10
)
11
11
12
12
const (
13
- LevelError = "ERROR "
14
- LevelInfo = "INFO "
15
- LevelV = "V[%d] "
13
+ LevelError = "ERROR"
14
+ LevelInfo = "INFO"
15
+ LevelV = "V[%d]"
16
16
)
17
17
18
18
var (
@@ -70,14 +70,14 @@ func (l *bufLogger) Enabled(level int) bool {
70
70
// Info implements logr.Logger.Info by writing the line to the internal buffer.
71
71
func (l * bufLogger ) Info (level int , msg string , kv ... interface {}) {
72
72
if l .Enabled (level ) {
73
- l .writeLine (l .levelString (level ), msg , KVFormatter ( kv ... ) )
73
+ l .writeLine (l .levelString (level ), msg , kv ... )
74
74
}
75
75
}
76
76
77
77
// Error implements logr.Logger.Error by prefixing the line with "ERROR" and
78
78
// write it to the internal buffer.
79
79
func (l * bufLogger ) Error (err error , msg string , kv ... interface {}) {
80
- l .writeLine (LevelError , msg , KVFormatter ( kv ... ) )
80
+ l .writeLine (LevelError , msg , kv ... )
81
81
}
82
82
83
83
// WithValues returns a new LogSink with additional key/value pairs.
@@ -107,21 +107,27 @@ func (l *bufLogger) WithName(name string) logr.LogSink {
107
107
}
108
108
109
109
func defaultKVFormatter (kv ... interface {}) string {
110
- s := strings .Join (strings .Fields (fmt .Sprint (kv )), " " )
110
+ s := strings .Join (strings .Fields (fmt .Sprint (kv ... )), " " )
111
111
s = strings .TrimPrefix (s , "[" )
112
112
s = strings .TrimSuffix (s , "]" )
113
113
return s
114
114
}
115
115
116
- func (l * bufLogger ) writeLine (level , msg , line string ) {
116
+ func (l * bufLogger ) writeLine (level , msg string , kv ... interface {} ) {
117
117
l .mu .Lock ()
118
118
defer l .mu .Unlock ()
119
- l .buf .WriteString (level )
120
- l .buf .WriteString (fmt .Sprintf ("%s " , l .name ))
121
- l .buf .WriteString (fmt .Sprintf ("%s " , msg ))
122
- l .buf .WriteString (fmt .Sprintf ("%s " , KVFormatter (l .values ... )))
123
- l .buf .WriteString (fmt .Sprintf ("%s" , line ))
124
- if ! strings .HasSuffix (line , "\n " ) {
119
+
120
+ var line []string
121
+
122
+ fields := []string {level , l .name , msg , KVFormatter (l .values ), KVFormatter (kv )}
123
+ for _ , f := range fields {
124
+ if f != "" {
125
+ line = append (line , f )
126
+ }
127
+ }
128
+
129
+ l .buf .WriteString (strings .Join (line , " " ))
130
+ if ! strings .HasSuffix (line [len (line )- 1 ], "\n " ) {
125
131
l .buf .WriteRune ('\n' )
126
132
}
127
133
}
0 commit comments