logger: fix concurrency issue

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi 2021-04-08 16:31:37 -07:00
parent b4c530653c
commit 10e676923c

View File

@ -7,6 +7,7 @@ import (
"hash/adler32"
"io"
"strings"
"sync"
"time"
"github.com/mitchellh/colorstring"
@ -21,6 +22,7 @@ var colorize = colorstring.Colorize{
type Console struct {
Out io.Writer
maxLength int
l sync.Mutex
}
func (c *Console) Write(p []byte) (n int, err error) {
@ -31,9 +33,12 @@ func (c *Console) Write(p []byte) (n int, err error) {
}
source := c.parseSource(event)
c.l.Lock()
if len(source) > c.maxLength {
c.maxLength = len(source)
}
c.l.Unlock()
return fmt.Fprintln(c.Out,
colorize.Color(fmt.Sprintf("%s %s %s%s%s",