Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsJul 4, 2026·3 min de lecture

Bunyan — Structured JSON Logging for Node.js

A simple and fast JSON logging library for Node.js services. Produces machine-readable log records and includes a CLI tool for pretty-printing during development.

Prêt pour agents

Installation agent prête

Cet actif peut être installé après choix du runtime, vérification du plan et exécution de la commande adaptée.

Native · 98/100Policy : autoriser
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Single
Confiance
Confiance : Established
Point d'entrée
Bunyan Overview
Commande d'installation directe
npx -y tokrepo@latest install 9b26f9d9-773f-11f1-9bc6-00163e2b0d79 --target codex

À exécuter après confirmation du plan en dry-run.

Introduction

Bunyan is a structured logging library for Node.js that outputs log records as JSON objects. This machine-readable format makes logs easy to parse, filter, and aggregate with tools like jq, Elasticsearch, or Splunk. A bundled CLI tool renders JSON logs as readable colored output during development.

What Bunyan Does

  • Produces structured JSON log records with timestamp, level, hostname, pid, and message fields
  • Supports named child loggers for adding context (request ID, user ID) to all downstream log entries
  • Provides configurable output streams: stdout, files, rotating files, and custom writable streams
  • Includes a CLI tool (bunyan) for pretty-printing, filtering by level, and searching JSON logs
  • Serializes errors with full stack traces and common objects (HTTP req/res) automatically

Architecture Overview

Bunyan creates a logger instance with one or more output streams. Each log call constructs a plain JavaScript object with standard fields, merges in any user-supplied fields, serializes it to a single JSON line, and writes it to all configured streams. Child loggers inherit parent streams and fields, adding their own context without duplicating configuration. The design avoids string interpolation and formatting overhead — the JSON record is the canonical output.

Self-Hosting & Configuration

  • Install via npm; the bunyan CLI is included as a bin script
  • Configure log level per stream to separate debug logs from production error logs
  • Use the rotating-file stream type for automatic log rotation by size or time
  • Register custom serializers for application-specific objects
  • Set the BUNYAN_NO_COLOR environment variable to disable CLI coloring in CI

Key Features

  • JSON-first log records for structured log aggregation and querying
  • Child loggers carry contextual fields (request ID, tenant) through the call chain
  • Built-in rotating file stream with configurable period and file count
  • CLI tool for filtering, pretty-printing, and searching log files
  • Custom serializers for safe and consistent object representation

Comparison with Similar Tools

  • Winston — more flexible transport system and wider community; outputs text by default, needs configuration for JSON
  • Pino — newer, faster JSON logger inspired by Bunyan; lower overhead but a different API surface
  • log4js — Java-style logging with appenders and categories; more configuration-heavy than Bunyan
  • console.log — zero setup but unstructured; no levels, no machine-readable output, no child loggers

FAQ

Q: Why JSON logs instead of plain text? A: JSON logs are parseable by log aggregation systems, filterable with tools like jq, and carry structured metadata without regex parsing.

Q: How do child loggers work? A: Call log.child({ requestId: 'abc' }) to create a child that includes requestId in every log record it produces, without affecting the parent.

Q: Can I send logs to multiple destinations? A: Yes. Pass an array of stream objects to createLogger, each with its own level, type, and path or stream reference.

Q: How does Bunyan compare to Pino in performance? A: Pino is generally faster in benchmarks due to a more aggressive optimization strategy. Bunyan prioritizes a stable API and built-in features like rotating files.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires