pino: JSON logger for Node.js applications
Low-overhead streaming JSON logger for Node.js.
Learn more about Pino
Pino is a logging library for Node.js that produces JSON-formatted output by default. It uses a streaming architecture where logs are written directly to standard output, with optional transport workers handling log processing in separate threads to avoid blocking the main event loop. The library supports child loggers for contextual logging, log redaction for sensitive data, and integration with web frameworks like Express, Fastify, and Koa. Common deployment patterns include piping logs to external services, using pretty-printing during development, and running log processors as worker threads.
Streaming JSON output
Logs are serialized to JSON and written directly to stdout, allowing logs to be piped to external processors or log aggregation services without requiring additional formatting layers.
Transport-based architecture
Log processing, filtering, and transmission are handled in separate worker threads via the transport API, preventing logging operations from blocking the main application thread.
Child logger context
Supports creating child loggers that automatically include parent context in all log entries, enabling request-scoped or component-scoped logging without manual context passing.
import pino from 'pino';
const logger = pino();
logger.info('Application started');
logger.error({ err: new Error('Failed') }, 'Request failed');
logger.debug({ userId: 123, action: 'login' }, 'User action');Fixes transport worker issues and improves documentation with dependency updates.
- –docs: clarify transport level filtering behavior
- –fix(transport): sanitize invalid NODE_OPTIONS preloads for workers
Improves multistream return types and adds worker thread naming for better transport identification.
- –feat: improve the return type of `multistream().clone()`
- –feat: set worker thread name for transport identification
Fixes worker execution argument validation errors when using monitoring tools.
- –fix: prevent ERRWORKERINVALIDEXECARGV with monitoring tools
Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
Playwright
Cross-browser automation framework with built-in test runner.
Cursor
Local code editor with integrated LLM assistance.
Bubble Tea
Go framework for terminal user interfaces based on The Elm Architecture with inline/fullscreen modes.
Cursor AI Downloads
Community repository with download links for all Cursor AI editor versions across Windows, macOS, and Linux.
Go
Statically typed, compiled language by Google focused on simplicity, concurrency, and fast compilation.