Back to Explore

pinojs/pino

GitHub
1 watchersOpen source

Last release:

Pino is a very low-overhead JavaScript JSON logger built for Node.js, designed to log quickly with minimal impact on application performance. It supports features like child loggers, log redaction, pretty printing for development, and transport-based log processing (such as running log processors in a separate worker). It is useful for developers who want structured JSON logs from Node.js apps and web frameworks.

Project status

  • Actively maintained: The repository shows an upstream GitHub push on 2026-08-10, and there are recent version updates in the provided history (v10.3.1, v10.3.0, v10.2.1 in Jan to Feb 2026).
  • Update cadence: From the provided updates, there were two patch updates within about a few weeks (v10.2.1 on 2026-01-19, v10.3.0 on 2026-01-23, v10.3.1 on 2026-02-09). There is then a longer gap until the last documented update in the list, while a separate upstream push occurred on 2026-08-10.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v10.3.1

    v10.3.1 makes a targeted transport fix to sanitize invalid NODE_OPTIONS preloads when pino runs transports in worker threads. It also includes small documentation clarifications around transport level filtering behavior and bumps a couple of development/build dependencies.

  • v10.3.0

    v10.3.0 adds two documented improvements: it refines the TypeScript return type of `multistream().clone()` and it assigns a worker thread name to transport worker threads for easier identification. The code changes also reveal additional type-inference mechanics and specific worker thread naming behavior not fully spelled out in the release notes.

    Features
  • v10.2.1

    v10.2.1 is a targeted patch release for pino's worker transport preload behavior. It aims to prevent ERR_WORKER_INVALID_EXEC_ARGV when monitoring tools or preload mechanisms supply incompatible Node execArgv flags.

  • v10.2.0

    v10.2.0 includes a small TypeScript linting chore and a fix for transport usage when pino is loaded via Node preload flags (for example, node --import ...). The code changes focus on preventing repeated preload execution in transport worker threads, which was causing a memory leak scenario.

  • v10.1.1

    v10.1.1 includes a browser-only feature to optionally attach the user callsite to log output via a new `browser.reportCaller` option, plus multiple TypeScript typing corrections and performance tweaks for newer Node.js versions. It also hardens transport loading against prototype pollution and bumps several build and library dependencies.

    SecurityFeatures
  • v10.1.0

    Release v10.1.0 updates pino to version 10.1.0 and focuses on redaction improvements (switching to @pinojs/redact), TypeScript type safety around censoring, and a small internal symbol cleanup. The release notes also cover lint and packaging tweaks, plus an added isoTimeNano typing in the nested namespace.

    Breaking
  • v9.14.0

    v9.14.0 updates type definitions (LogFnFields), switches the redaction implementation to use @pinojs/redact, and adjusts child logger level initialization to address issues when wrapping log methods (for example, with Sinon). The diff also adds a targeted test to prevent child method reference coupling to its parent.

    Features
  • v10.0.0

    v10.0.0 primarily drops support for Node 18, and includes a TypeScript typing enhancement introducing LogFnFields for module augmentation. The release also modernizes the test suite to use node:test and removes an unused .taprc.yaml.

    BreakingFeatures
  • v9.13.1

    This release is a patch version bump to v9.13.1 with changes focused on TypeScript type definitions for pino logging. The only functional change reflected in the diff is improved generic handling for the LogFn type, plus corresponding type tests, while runtime code remains effectively unchanged.

  • v9.13.0

    v9.13.0 primarily contains build and workflow dependency bumps plus a performance-focused change to child logger creation (Pino .child). The release notes also mention an ecosystem docs update (adding eslint-plugin-pino) and several GitHub Actions version bumps.