Lead maintainer: James Sumners
pino-filter is a transport for Pino that allows filtering of log lines based on logger names, similar to the funtionality of filters in the debug module.
Logs that match any filters are written to stdout
. By default, pino-filter
will pass through all received logs at the info
level or higher. To define
filters, a configuration file must be supplied that provides a mapping of
filters to log levels. For example, you can supply a simple JSON file:
{
"levels": {
"*": "info",
"foo:bar": "debug",
"baz:*": "trace"
}
}
$ node the-app.js | pino-filter ./config.json
module.exports = {
levels: {
'*': 'info', // catch-all filter
'foo:bar': 'debug',
'baz:*': 'trace'
},
values: {
fatal: 60,
error: 50,
warn: 40,
info: 30,
debug: 20,
trace: 10
}
}
levels
: a mapping of filters (keys) to log levels (level names). Note: the wildcard*
may only be used at the end of a filter, e.g.foo:*
is valid butfoo:*:bar
is not.values
: a mapping of level names to their numeric value. The default is set to the standard Pino levels. If custom levels are defined in the application, those level values should be defined here.
Note: the configuration file can be reloaded at runtime by sending the
SIGHUP
signal to the pino-filter process.