diff --git a/pkg/log/dsn.go b/pkg/log/dsn.go index 0f541ac60..ea8158a84 100644 --- a/pkg/log/dsn.go +++ b/pkg/log/dsn.go @@ -1,7 +1,6 @@ package log import ( - "bytes" "fmt" "strconv" "strings" @@ -25,14 +24,13 @@ func (f *logFilter) Set(value string) error { } func (m verboseModule) String() string { - // FIXME strings.Builder - var buf bytes.Buffer + var b strings.Builder for k, v := range m { - buf.WriteString(k) - buf.WriteString(strconv.FormatInt(int64(v), 10)) - buf.WriteString(",") + b.WriteString(k) + b.WriteString(strconv.FormatInt(int64(v), 10)) + b.WriteString(",") } - return buf.String() + return b.String() } // Set sets the value of the named command-line flag. diff --git a/pkg/log/pattern.go b/pkg/log/pattern.go index 6e9a515da..d023e6ddf 100644 --- a/pkg/log/pattern.go +++ b/pkg/log/pattern.go @@ -1,7 +1,6 @@ package log import ( - "bytes" "fmt" "io" "path" @@ -28,7 +27,7 @@ var patternMap = map[string]func(map[string]interface{}) string{ // newPatternRender new pattern render func newPatternRender(format string) Render { p := &pattern{ - bufPool: sync.Pool{New: func() interface{} { return &bytes.Buffer{} }}, + bufPool: sync.Pool{New: func() interface{} { return &strings.Builder{} }}, } b := make([]byte, 0, len(format)) for i := 0; i < len(format); i++ { @@ -65,32 +64,31 @@ type pattern struct { // Render implemet Formater func (p *pattern) Render(w io.Writer, d map[string]interface{}) error { - buf := p.bufPool.Get().(*bytes.Buffer) + builder := p.bufPool.Get().(*strings.Builder) defer func() { - buf.Reset() - p.bufPool.Put(buf) + builder.Reset() + p.bufPool.Put(builder) }() for _, f := range p.funcs { - buf.WriteString(f(d)) + builder.WriteString(f(d)) } - _, err := buf.WriteTo(w) + _, err := w.Write([]byte(builder.String())) return err } // Render implemet Formater as string func (p *pattern) RenderString(d map[string]interface{}) string { - // TODO strings.Builder - buf := p.bufPool.Get().(*bytes.Buffer) + builder := p.bufPool.Get().(*strings.Builder) defer func() { - buf.Reset() - p.bufPool.Put(buf) + builder.Reset() + p.bufPool.Put(builder) }() for _, f := range p.funcs { - buf.WriteString(f(d)) + builder.WriteString(f(d)) } - return buf.String() + return builder.String() } func textFactory(text string) func(map[string]interface{}) string {