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
VS Code LeetCode
VS Code extension for solving LeetCode problems directly in the editor with testing and submission.
Oh My Zsh
Community-driven zsh configuration framework with modular plugins.
Powerline Fonts
TrueType font binaries and metadata organized by license.
Lima
Linux VM launcher with automatic file sharing, port forwarding, and container engine support.
Colima
Lima-based container runtime provisioning for macOS and Linux.