Fix bug when a line happens to parse as JSON but isn't an object.
For example, if `false` happened to be the only value on a line, this would be parsed as valid JSON (a boolean) but it is not a structured log message that slfmt should try to parse and format.
This commit is contained in:
parent
6c978f32cc
commit
11cc9c9a39
@ -1,6 +1,6 @@
|
|||||||
# Package
|
# Package
|
||||||
|
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
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.0"
|
const VERSION = "0.2.1"
|
||||||
|
|
||||||
const USAGE = """Usage:
|
const USAGE = """Usage:
|
||||||
slfmt [options]
|
slfmt [options]
|
||||||
@ -134,6 +134,8 @@ when isMainModule:
|
|||||||
while(sin.readLine(line)):
|
while(sin.readLine(line)):
|
||||||
try:
|
try:
|
||||||
let logJson = parseLogLine(line)
|
let logJson = parseLogLine(line)
|
||||||
|
if logJson.kind != JObject:
|
||||||
|
raise newException(JsonParsingError, "Expected a JSON object")
|
||||||
|
|
||||||
if logLevel.isSome and logJson.hasKey("level"):
|
if logLevel.isSome and logJson.hasKey("level"):
|
||||||
let lvl = parseLogLevel(logJson["level"].getStr)
|
let lvl = parseLogLevel(logJson["level"].getStr)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user