semantic-pretty v1.0.1
pino-pretty
This module provides a basic log prettifier for the Pino logging library. It reads a standard Pino log line like:
{"level":30,"time":1522431328992,"msg":"hello world","pid":42,"hostname":"foo","v":1}And formats it to:
[1522431328992] INFO (42 on foo): hello worldExample
Using the example script from the Pino module, and specifying that logs should be colored and the time translated, we can see what the prettified logs will look like:

Install
$ npm install -g pino-prettyUsage
It's recommended to use pino-pretty with pino
by piping output to the CLI tool:
pino app.js | pino-prettyCLI Arguments
--colorize(-c): Adds terminal color escape sequences to the output.--crlf(-f): Appends carriage return and line feed, instead of just a line feed, to the formatted log line.--errorProps(-e): When formatting an error object, display this list of properties. The list should be a comma separated list of properties Default:''.--levelFirst(-l): Display the log level name before the logged date and time.--errorLikeObjectKeys(-k): Define the log keys that are associated with error like objects. Default:err,error.--messageKey(-m): Define the key that contains the main log message. Default:msg.--translateTime(-t): Translate the epoch time value into a human readable date and time string. This flag also can set the format string to apply when translating the date to human readable format. For a list of available pattern letters see thedateformatdocumentation.- The default format is
yyyy-mm-dd HH:MM:ss.l oin UTC. - Require a
SYS:prefix to translate time to the local system's timezone. A shortcutSYS:standardto translate time toyyyy-mm-dd HH:MM:ss.l oin system timezone.
- The default format is
--search(-s): Specifiy a search pattern according to jmespath.
Programmatic Integration
We recommend against using pino-pretty in production, and highly
recommend installing pino-pretty as a development dependency.
When installed, pretty-print will be used by pino as the default
prettifier.
Install pino-pretty alongside pino and set the
prettyPrint option to true:
const pino = require('pino')
const logger = pino({
prettyPrint: true
})
logger.info('hi')The prettyPrint option can also be an object containing pretty-print
options:
const pino = require('pino')
const logger = pino({
prettyPrint: { colorize: true }
})
logger.info('hi')See the Options section for all possible options.
Options
pino-pretty exports a factory function that can be used to format log strings.
This factory function is used internally by pino, and accepts an options argument
with keys corresponding to the options described in CLI Arguments:
{
colorize: chalk.supportsColor, // --colorize
crlf: false, // --crlf
errorLikeObjectKeys: ['err', 'error'], // --errorLikeObjectKeys
errorProps: '', // --errorProps
levelFirst: false, // --levelFirst
messageKey: 'msg', // --messageKey
translateTime: false, // --translateTime
search: 'foo == `bar`' // --search
}The colorize default follows
`chalk.supportsColor.
License
MIT License