logging-best-practices
Logging Best Practices
Most logging code is written as if it were for a monolith circa 2010: scattered console.log / logger.info calls printing human-readable strings that tell a reader what the code is doing. In a distributed system under load that approach fails in predictable ways — you get 10k lines of noise per minute, no way to correlate across services, and when the incident hits you can answer "did it crash?" but not "which customers were affected, on which deploy, in which region". This skill exists to push code toward an observability primitive that actually works: one structured, context-rich event per unit of work.
The core ideas come from Stripe's canonical log lines, the wide-events / observability-2.0 lineage (Charity Majors et al.), and Boris Tane's loggingsucks.com manifesto and logging-best-practices skill. This skill adapts and extends that work with concrete guidance for Python and Cloudflare Workers.
When to apply
Any time logging code is being written, reviewed, or designed — whether that's a fresh service, a debug session, or "just adding a log line". The reframe matters even for single log additions: before adding logger.info("thing happened"), ask whether this should instead enrich a canonical event for the current request.
When triggered, do this first
A short orchestration recipe to avoid jumping straight to "write some logger code". Skip steps that are obviously already done.
- Identify the runtime so you load the correct reference. Check
package.json/pyproject.toml/wrangler.jsonc. If it is a multi-service repo, ask which service. - Audit what exists, before proposing changes:
- Where is the logger configured? (search for
structlog.configure,pino(,winston.createLogger,logging.basicConfig,console.log) - Is there middleware or a request hook? (search for
app.use,add_middleware,Middleware) - How many distinct call sites —
console.log/logger.info/print/log.info? A rough count tells you whether this is greenfield, growing, or legacy-debt territory.
- Where is the logger configured? (search for
More from connorads/dotfiles
web-animation-design
>
449firecrawl
|
286dependency-updater
Smart dependency management for any language. Auto-detects project type, applies safe updates automatically, prompts for major versions, diagnoses and fixes dependency issues.
247payload-cms
>
236hetzner-server
Create and manage Hetzner Cloud servers. Use when creating VPS/cloud servers, managing Hetzner infrastructure, or setting up dev/remote servers. Requires hcloud CLI.
212holistic-ux
>
97