Prettifies NDJSON (Newline Delimited JSON) logs. Similar to pino-pretty but actually pretty.
npm install pretty-pino --global
The tool reads from the STDIN
and is installed as the cmd pretty
in the shell.
-
You can pipe it to the output of a running application:
node index.js | pretty [OPTIONS]
-
Or just feed it an already existing file.
pretty [OPTIONS] < input.log
pretty --help
___
Usage: ... | pretty [options]
Time Staps
--time-stamps Print TimeStamps. [boolean][default: true]
--stamps-format, -f TimeStamps format. [YYYY-MM-DD-HH:mm:ss]
--stamps-time-zone, --tz TimeStamps zone offset. [default: "Etc/UTC"]
--print-host Prepends the host to the log line. [boolean][default: false]
Filter
--strict Only show "legal" log lines. [boolean][default: false]
--level, -l Only show messages >= level. [string][default: "trace"]
Inspect
--depth (passed to util.inspect) [number][default: 4]
--max-array-length (passed to util.inspect) [number][default: 100]
Other
--force-color Force color output [boolean][default: false]
Notes:
- The
boolean
options can be set false using--no-option
. Example:--no-time-stamps
- The
--level
choices are: "trace", "debug", "info", "error", "warn", "fatal" - The
--stamps-format
value is passed directly tomoment.format()
- You force the colored output using the env variable:
FORCE_COLOR=1
- You can pass the time stamps zone offset via the env variable:
PRETTY_TZ
- You can pass the time stamps format via the env variable:
PRETTY_STAMPS_FORMAT
Install pretty-pino
alongside pino
and set the prettyPrint
option to true
. Usefull on development.
You can pass options to pretty-pino
using pino
's prettyPrint
option. See the Options section for more info.
const pino = require('pino')
const log = pino({
prettyPrint: { forceColor: true },
prettifier: require('pretty-pino')
})
log.info('hello world')
The options object passed to pretty-pino
will merge with the default options.
{
level: 'trace', // Only print messages >= level.
strict: false, // Only print valid pino/bunyan logs
forceColor: false // Force color output
termColors: false, // trust the term colors, not the stream ones
colorLevel: 2 // based on your terminal (uses supports-color)
depth: 4, // (passed to util.inspect)
maxArrayLength: 100, // (passed to util.inspect)
printHost: false, // Print Host.
timeStamps: true, // Print TimeStamps.
stampsFormat: 'YYYY-MM-DD-HH:mm:ss',
stampsTimeZone: moment.tz.guess(), // TimeStamps zone offset (Based on your Locale)
}
Find the CHANGELOG here, generated using Conventional Commits.