Convert JSON log lines into simple pretty colored log output
Converts
{"pid":0,"time":"2019-11-03T00: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-03T00: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>;
}