Navigate:
~$PINO0.4%

pino: JSON logger for Node.js applications

Low-overhead streaming JSON logger for Node.js.

LIVE RANKINGS • 02:13 PM • STEADY
OVERALL
#192
57
DEVELOPER TOOLS
#35
14
30 DAY RANKING TREND
ovr#192
·Devel#35
STARS
17.4K
FORKS
940
7D STARS
+63
7D FORKS
+2
See Repo:
Share:

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.

Pino

1

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.

2

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.

3

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');

vv10.3.1

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
vv10.3.0

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
vv10.2.1

Fixes worker execution argument validation errors when using monitoring tools.

  • fix: prevent ERRWORKERINVALIDEXECARGV with monitoring tools


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers