Allow devs to change the width of the logging level column in consolewriter (#87)
* Allow user to change the width of the logging level column * Change default level width to 0 (no dynamic width)
This commit is contained in:
parent
e8a8508f09
commit
bae001d86b
13
console.go
13
console.go
|
@ -31,6 +31,10 @@ var consoleBufPool = sync.Pool{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LevelWidth defines the desired character width of the log level column.
|
||||||
|
// Default 0 does not trim or pad (variable width based level text, e.g. "INFO" or "ERROR")
|
||||||
|
var LevelWidth = 0
|
||||||
|
|
||||||
// ConsoleWriter reads a JSON object per write operation and output an
|
// ConsoleWriter reads a JSON object per write operation and output an
|
||||||
// optionally colored human readable version on the Out writer.
|
// optionally colored human readable version on the Out writer.
|
||||||
type ConsoleWriter struct {
|
type ConsoleWriter struct {
|
||||||
|
@ -55,7 +59,14 @@ func (w ConsoleWriter) Write(p []byte) (n int, err error) {
|
||||||
if !w.NoColor {
|
if !w.NoColor {
|
||||||
lvlColor = levelColor(l)
|
lvlColor = levelColor(l)
|
||||||
}
|
}
|
||||||
level = strings.ToUpper(l)[0:4]
|
level = strings.ToUpper(l)
|
||||||
|
if LevelWidth > 0 {
|
||||||
|
if padding := LevelWidth - len(level); padding > 0 {
|
||||||
|
level += strings.Repeat(" ", padding)
|
||||||
|
} else {
|
||||||
|
level = level[0:LevelWidth]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fmt.Fprintf(buf, "%s |%s| %s",
|
fmt.Fprintf(buf, "%s |%s| %s",
|
||||||
colorize(formatTime(event[TimestampFieldName]), cDarkGray, !w.NoColor),
|
colorize(formatTime(event[TimestampFieldName]), cDarkGray, !w.NoColor),
|
||||||
|
|
Loading…
Reference in New Issue