ncklrs/startup-os-skills

logging-best-practices

Expert logging guidance based on Boris Tane's loggingsucks.com philosophy. Use when implementing logging, adding observability, debugging production issues, or reviewing code that includes log statements. Covers wide events architecture, structured logging, smart sampling, and high-cardinality field design.

First seen Feb 2, 2026

Installation

$ npx skills add ncklrs/startup-os-skills --skill logging-best-practices

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from ncklrs/startup-os-skills · top by installs.

npx skills add ncklrs/startup-os-skills

Browse all from ncklrs/startup-os-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 50
License MIT
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,789 B
  • docs SUMMARY.md 338 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 133 installs

SKILL.md

Logging Best Practices

Expert guidance for production-grade logging based on Boris Tane's loggingsucks.com philosophy.

Core Philosophy

Stop logging "what your code is doing." Start logging "what happened to this request."

Traditional logging is optimized for writing, not querying. Developers emit logs for immediate debugging convenience without considering how they'll be searched later. This creates massive signal-to-noise ratios at scale.

The Wide Events Architecture

Instead of scattered log statements throughout your code, build one comprehensive event per request per service:

// ❌ Traditional scattered logging
logger.info("Request started");
logger.info(`User ${userId} found`);
logger.info("Fetching cart");
logger.debug(`Cart has ${items.length} items`);
logger.info("Processing payment");
logger.error(`Payment failed: ${error.message}`);

// ✅ Wide event - build throughout request, emit once
const event = {
  request_id: req.id,
  timestamp: Date.now(),
  service: "checkout",
  version: "2.3.1",

  user: { id: userId, tier: "premium", account_age_days: 847 },
  cart: { id: cartId, item_count: 3, total_cents: 15999 },
  payment: { method: "card", provider: "stripe", latency_ms: 234 },

  outcome: "failure",
  error: { type: "PaymentDeclined", code: "card_declined", retriable: true }
};

logger.info(event);

Key Concepts

Concept Definition
Wide Event One comprehensive, context-rich log per request per service
Cardinality Number of unique values (user IDs = high, HTTP methods = low)
Dimensionality Count of fields per event (aim for 40+ meaningful fields)
Tail Sampling Sample decisions after request completion based on outcomes

When to Apply This Skill

  • Implementing logging in new services
  • Reviewing code with log statements
  • Debugging production issues
  • Designing observability strategy
  • Migrating from printf-style to structured logging
  • Reducing log volume while improving queryability

What This Skill Provides

  1. Wide event patterns for different frameworks and languages
  2. Field design guidance for high-cardinality debugging
  3. Sampling strategies that preserve signal
  4. Anti-pattern detection in existing logging code
  5. Query-first thinking for log architecture