evlog — современный TypeScript-логгер
Современный TypeScript-логгер с поддержкой структурированных логов, wide events и structured errors в одном API.
privacy
Эта заметка участвует в semantic memory.
AI Summary
🚀 TL;DR
evlog — современный TypeScript-логгер, который заменяет console.log/pino/consola и даёт три режима логирования в одном API: простые структурированные логи, wide events (накопление контекста) и structured errors с полями why/fix/link.
📖 Что это такое
evlog — это zero-dependency TypeScript-логгер (~6 kB gzip) для CLI, библиотек, background jobs, edge workers и HTTP-хендлеров. Он объединяет три подхода: fire-and-forget structured logs, wide events (accumulate context → emit once) и structured errors с actionable контекстом. Работает везде: от standalone скриптов до Cloudflare Workers.
🔑 Ключевые факты
- Zero transitive dependencies, ~6 kB gzip
- ~3 µs/request, 7.7x быстрее pino в wide event паттерне
- Один API для всех контекстов (scripts, frameworks, edge, browser, library)
- Structured errors: why, fix, link
- Wide events: log.set() + log.emit() вместо склеивания строк
- Поддержка AI-агентов через structured context
- Сравнение: feature comparison
⚙️ Как это работает
Simple Logging:
import { log } from 'evlog'
log.info('auth', 'User logged in')
log.error({ action: 'payment', error: 'card_declined', userId: 42 })
Wide Events:
import { createLogger } from 'evlog'
const log = createLogger({ jobId: 'sync-001' })
log.set({ batch: { size: 50, processed: 50 } })
log.emit()
Structured Errors:
import { createError } from 'evlog'
throw createError({
message: 'Payment failed',
status: 402,
why: 'Card declined by issuer',
fix: 'Try a different payment method',
link: 'https://docs.example.com/payments/declined'
})
💡 Вывод и значение
evlog решает проблему разрозненных логов и отсутствия контекста в ошибках. В эпоху AI-агентов structured context (why/fix/link) становится критически важным. Логгер даёт один API для всех сценариев, нулевые зависимости и производительность, подходящую для production. Рекомендуется начинать с него с первого дня проекта.
📌 Важные детали
- GitHub: https://github.com/hugorcd/evlog
- Документация: Quick Start, Why start with evlog
- Дополнительно: @evlog/cli для статического анализа entry points
- Интеграции: Standalone TypeScript, Cloudflare Workers