Convert JSON log lines into simple pretty colored log output
Converts
{"pid":0,"time":"2019年11月03日T00:48:55.623Z","hostname":"","level":30,"msg":"HTTPGet","v":0,"name":"cogview","firstChunk":0,"lastChunk":0,"chunkCount":1,"bytes":32768,"fetchRange":"bytes=0-32768"}
{"pid":0,"time":"2019年11月03日T00:48:55.677Z","hostname":"","level":30,"msg":"HTTPGet","v":0,"name":"cogview","firstChunk":94,"lastChunk":95,"chunkCount":1,"bytes":32768,"fetchRange":"bytes=3080192-3145728"}into
npm i -g pretty-json-log cat <log-file> | pjl
Logs can be filtered using --level
cat <log-file> | pjl --level 20
Do not output Resources
cat <log-file> | pjl --ignore-resources
To be pretty printable the basic json line needs to have:
Either:
- A PinoJS log message
/** Base log object every log object should have at minimum these three keys */ export interface LogMessage extends Record<string, any> { /** Log level */ level: number; /** Time stamp either a ISO8601 string, timestamp number in ms or a Date */ time: number | string | Date; /** Log message */ msg: string; }
- A OpenTelemetry Log Message
export interface LogMessageOpenTelemetry { /** Timestamp in nanoseconds if a string, or ms if a number */ Timestamp: number | string /** Message body */ Body?: unknown; Resource?: Record<string, unknown>; Attributes?: Record<string, unknown>; }