{"id":14812,"library":"pino","title":"Pino","description":"Pino is a super fast, all-natural JSON logger for Node.js. The current stable version is 10.3.1. The library is actively maintained with frequent minor releases, typically addressing bug fixes, performance improvements, and feature enhancements for its core logging and transport functionalities.","status":"active","version":"10.3.1","language":"javascript","source_language":"en","source_url":"https://github.com/pinojs/pino","tags":["javascript","fast","logger","stream","json","typescript"],"install":[{"cmd":"npm install pino","lang":"bash","label":"npm"},{"cmd":"yarn add pino","lang":"bash","label":"yarn"},{"cmd":"pnpm add pino","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Pino supports both ESM imports and CommonJS `require()` syntax.","symbol":"pino","correct":"import pino from 'pino'"}],"quickstart":{"code":"import pino from 'pino';\n\nconst logger = pino();\n\nlogger.info('hello world');\n\nconst child = logger.child({ a: 'property' });\nchild.info('hello child!');","lang":"typescript","description":"Initializes a Pino logger and demonstrates basic info logging and creating a child logger with additional properties."},"warnings":[{"fix":"Upgrade your Node.js runtime to version 20 or newer, or stick to Pino v9.x.","message":"Pino v10 drops support for Node.js 18.","severity":"breaking","affected_versions":">=10.0.0"},{"fix":"Review and update your `censor` function implementations to match the safer type definitions introduced in v10.1.0. Consult the official Pino redaction documentation for guidance.","message":"The type signature for the `censor` function used in redaction has been updated for improved safety, potentially causing TypeScript errors or runtime issues if using previous, less safe types.","severity":"breaking","affected_versions":">=10.1.0"},{"fix":"Ensure your Pino version is at least 10.3.1 for fixes related to `NODE_OPTIONS` sanitization and `ERR_WORKER_INVALID_EXEC_ARGV`. Avoid using `--import` preloads with transports if possible, or consult Pino transport documentation for recommended practices.","message":"When using Pino transports in worker threads, certain Node.js monitoring tools or `--import` preload options can lead to `ERR_WORKER_INVALID_EXEC_ARGV` errors or memory leaks.","severity":"gotcha","affected_versions":">=10.0.0"},{"fix":"Explicitly configure transport levels if you require specific filtering. Refer to the 'Transports' documentation for detailed examples on level filtering.","message":"Pino's transport level filtering behavior might not be immediately intuitive. Logs are filtered by the transport's level, not necessarily the parent logger's level.","severity":"gotcha","affected_versions":">=10.3.1"}],"env_vars":null,"last_verified":"2026-04-18T00:00:00.000Z","next_check":"2026-07-17T00:00:00.000Z","problems":[{"fix":"Upgrade to Pino v10.2.1 or newer. Ensure Node.js environment variables (like `NODE_OPTIONS`) are correctly sanitized or avoid conflicting preload settings when using worker-based transports.","cause":"Using Pino transports in worker threads with specific monitoring tools or `NODE_OPTIONS` preload configurations.","error":"ERR_WORKER_INVALID_EXEC_ARGV"},{"fix":"Adjust the signature of your `censor` function to align with the updated, safer types provided by Pino v10.1.0 and later. Consult the Pino redaction documentation for the correct signature.","cause":"Pino v10.1.0 introduced stricter type definitions for the `censor` function signature, leading to TypeScript compilation errors for older, less safe implementations.","error":"TypeError: Argument of type '...' is not assignable to parameter of type '(...)'"}],"ecosystem":"npm"}