Correctly handle nested JSON fields when using compact formatting.
This commit is contained in:
parent
2291b75c0a
commit
4efc72e8ae
@ -1,6 +1,6 @@
|
|||||||
# Package
|
# Package
|
||||||
|
|
||||||
version = "0.2.2"
|
version = "0.2.3"
|
||||||
author = "Jonathan Bernard"
|
author = "Jonathan Bernard"
|
||||||
description = "Small utility to pretty-print strucutured logs."
|
description = "Small utility to pretty-print strucutured logs."
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
@ -4,7 +4,7 @@ import docopt, timeutils, zero_functional
|
|||||||
from std/logging import Level
|
from std/logging import Level
|
||||||
from std/sequtils import toSeq
|
from std/sequtils import toSeq
|
||||||
|
|
||||||
const VERSION = "0.2.2"
|
const VERSION = "0.2.3"
|
||||||
|
|
||||||
const USAGE = """Usage:
|
const USAGE = """Usage:
|
||||||
slfmt [options]
|
slfmt [options]
|
||||||
@ -98,14 +98,21 @@ proc compactFormat(logJson: JsonNode): string =
|
|||||||
filter(not ["level", "scope", "ts", "msg"].contains(it[0]))
|
filter(not ["level", "scope", "ts", "msg"].contains(it[0]))
|
||||||
|
|
||||||
let restMsg = join(restNodes -->
|
let restMsg = join(restNodes -->
|
||||||
map("$1: $2" % [decorate(it[0], fgCyan), it[1].getStr]), " ")
|
map("$1: $2" % [
|
||||||
|
decorate(it[0], fgCyan),
|
||||||
|
if it[1].kind == JString: it[1].getStr
|
||||||
|
else: pretty(it[1]),
|
||||||
|
" "]))
|
||||||
|
|
||||||
if restMsg.len + result.len + 2 < terminalWidth():
|
if restMsg.len + result.len + 2 < terminalWidth():
|
||||||
result &= " " & restMsg
|
result &= " " & restMsg
|
||||||
else:
|
else:
|
||||||
var line = " "
|
var line = " "
|
||||||
for (key, val) in restNodes:
|
for (key, val) in restNodes:
|
||||||
let field = "$1: $2" % [decorate(key, fgCyan), val.getStr]
|
let fieldVal =
|
||||||
|
if val.kind == JString: val.getStr
|
||||||
|
else: pretty(val)
|
||||||
|
let field = "$1: $2" % [decorate(key, fgCyan), fieldVal]
|
||||||
if line.len + field.len + 2 > terminalWidth():
|
if line.len + field.len + 2 > terminalWidth():
|
||||||
result &= "\n " & line
|
result &= "\n " & line
|
||||||
line = " "
|
line = " "
|
||||||
|
Loading…
x
Reference in New Issue
Block a user