Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

blacha/pretty-json-log

Repository files navigation

Pretty Json Log (PJL)

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

Example output

Example output OpenTelemetry

Install

npm i -g pretty-json-log
cat <log-file> | pjl 

Logs can be filtered using --level

cat <log-file> | pjl --level 20

OpenTelemetry Log options

Do not output Resources

cat <log-file> | pjl --ignore-resources

Basic log type

To be pretty printable the basic json line needs to have:

Either:

  1. 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;
}
  1. 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>;
}

About

Pretty print json log files

Resources

License

Stars

Watchers

Forks

Contributors 6

AltStyle によって変換されたページ (->オリジナル) /