npm / pino
pino
What changed in pino 9 to 10, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.
pino 1024 changes
Breaking changes 1
The censor function signature now uses safer types, which may require type adjustments.
Security 2
Invalid NODE_OPTIONS preloads are sanitized for workers, preventing invalid preload configuration from affecting worker execution.
Transport loading is hardened against prototype pollution.
Deprecations 1
Pino warns when formatters.level is incompatible with multi-target transports.
New APIs and options 5
The browser logger now provides bindings().
The browser logger now supports redaction configuration.
The browser logger now provides setBindings.
Browser logging adds reportCaller to expose the user's callsite.
Pino now uses @pinojs/redact for redaction.
Performance 1
The fast path uses JSON.stringify on Node.js 25 and newer.
Behavior and default changes 2
The return type of multistream().clone() was improved.
Worker threads now have a name to support transport identification.
Fixes and other changes 12
Child binding keys are escaped correctly.
A named default export is now available.
multistream clone/add no longer crashes, and missing end/remove methods are fixed.
Logging objects with an own __proto__ key no longer crashes.
Redaction shapes are built without Object.prototype.
Per-target level filtering is now honored for a single-element targets array.
multistream write now resolves string level labels correctly.
Prevents ERR_WORKER_INVALID_EXEC_ARGV when using monitoring tools.
Prevents a memory leak when using transport with --import preload.
Conditional type handling for generic log function arguments was corrected.
The %o placeholder now accepts strings, numbers, and null values.
isoTimeNano is now available in nested namespaces.
pino 93 changes
Breaking changes 1
Reverts the setlevel option in the 9.x release line, so configurations relying on it should no longer use it.
New APIs and options 1
Adds the LogFnFields type for developers using Pino's logging function types.
Behavior and default changes 1
Updates the redaction implementation used by Pino, potentially changing redaction behavior for applications that configure it.