NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1310 most downloaded on npm
super fast, all natural json logger
Last release 7 months ago
09 Feb 2026
Release timing varies
gaps range from 9 days to 5 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
11 years old
333 releases · first in 2016
Fix time quoting in prettification #905 #907
Add timestamp option to browser env, closes #903
📚 PR:
Clear cached parsed chindings when they're changed with .setBindings (fixes #890)
📚 PR:
One column per quarter.
Revert originalMsg feature #882
originalMsg feature #882Remove unused communication channels from README #880
Docs Map log level to Stackdriver Severity
📚 PR:
Issue 87 child binding redact bug
📚 PR:
Set sync: true when passing in no defaults
📚 PR:
Use object shorthand for properties
📚 PR:
express-pino-logger should be deprecated
📚 PR:
Merge pull request #811 from pinojs/dx-improvements
📚 PR:
Correctly forwards chindings to prettyPrint when using option
📚 PR:
Add a hook API to allow mutation of log method parameters before the log method is invoked. #803 #808
Drops support for no longer maintained versions of Node.js #776 #747
v from log lines #623 #620null #711 #706Previously, Pino emulated Bunyan's behavior when interpreting logs like:
log.info('a message', { an: 'object'})log.info('a', 'silly', 'message')The old behavior would result in 1 yielding "msg":"a message {\"an\":\"object\"}" and 2 yielding
"msg":"a silly message". As of this release, 1 will yield "msg":"a message" and 2 will yield "msg":"a".
To get the same results in Pino v6 as in previous releases actual format identifiers should be provided, e.g.:
log.info('a message %j', { an: 'object' })log.info('a %s %s', 'silly', 'message')Nothing published for this version
Nothing published for this version
Deprecate the changeLevelName option and alias it to levelKey
changeLevelName option and alias it to levelKey (#772)add nestedKey option https://github.com/pinojs/pino/pull/759
nestedKey option https://github.com/pinojs/pino/pull/759test(mixin): improve object test to ensure proper object assign order
📚 PR:
catch potential write errors on fatal flush sync
📚 PR:
fix(redaction): fix corner cases with paths
📚 PR:
always sync flush on fatal log – https://github.com/pinojs/pino/pull/730
Nothing published for this version
docs(transports): add CloudWatch
📚 PR:
Nothing published for this version
Nothing published for this version
Remove note about fastify v2 and link to right doc
* docs fix #659 * browser fix #658
* mobile safari browser fix #653
Nothing published for this version
fix ci by keeping browser pino compat with pino-std-serializers – #646
Nothing published for this version
resolve message key state issue #635
Fix bug Global serializer not invoked for strings when base: null
base: null (#597)fix message precedence over merging object https://github.com/pinojs/pino/pull/616
Support hapi-pino in pino-browser #612
add pino-fluentd to community modules [docs] #594
add bindings method to logger instances #588
bindings method to logger instances #588fix for asObject and transmit.send interrelated bug #590
asObject and transmit.send interrelated bug #590redaction top level key fixes #592
Support leading wildcards in redaction filters #587
fix browser transmit method https://github.com/pinojs/pino/pull/585
Nothing published for this version
Removed unused dependencies #574
Nothing published for this version
fix invalid JSON when redact.remove acts on chindings #570
redact.remove acts on chindings #570doc fixes, https://github.com/pinojs/pino/pull/567
Nothing published for this version
fix failing test, allow censor function #551
Do not crash on broken pipe, redirect to /dev/null #540
Fix response headers in test #529
Makes final warn instead of throw when using prettyPrint #528
Don't use default levels if useOnlyCustomLevel is specified #522
The serializer object should not have a prototype #527
Convert NaN and Infinity to null #519
Nothing published for this version
Allow custom level to remove defaults #515
Do not error "primitives cannot be redacted" #514
Nothing published for this version
Added the ability to change the level name when creating an instance #503
Your coding agent can read these notes before it upgrades. Set up the MCP server →