René's URL Explorer Experiment


Title: evlog — TypeScript logger for wide events & structured logs

Open Graph Title: evlog — TypeScript logger for wide events & structured logs

Description: Digging through logs is not observability. It's hope. evlog is a TypeScript logger: structured logs, wide events and actionable errors in one API.

Open Graph Description: Digging through logs is not observability. It's hope. evlog is a TypeScript logger: structured logs, wide events and actionable errors in one API.

Opengraph URL: https://www.evlog.dev

X: @hugorcd

direct link

Domain: evlog.dev


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"SoftwareApplication","@id":"https://www.evlog.dev/#identity","license":"https://github.com/evloghq/evlog/blob/main/LICENSE","author":{"@type":"Person","name":"HugoRCD","url":"https://hugorcd.com/"}}
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"I already use pino. What actually changes?","acceptedAnswer":{"@type":"Answer","text":"evlog supplies a context accumulator and integrations that finish the request event. log.set() adds fields during the operation, and the emitted event carries its outcome and error together. Pino can also emit a completed object once, with accumulation managed by your application. createError() adds why and fix , and a catalog gives recurring failures a stable code. Call signatures, serializers, and output configuration need an explicit migration. See the comparison for your stack ."}},{"@type":"Question","name":"My app is already in production. Is it too late?","acceptedAnswer":{"@type":"Answer","text":"No, and you do not have to guess where to start. evlog map reads your source and scores every entry point on the context it will hand you when it breaks, then names the ones to fix first. It needs no traffic, no agent, and no deploy, so you get that list before the next incident instead of during it. Day one or year three, the work is the same list. See adding it to an app already in production ."}},{"@type":"Question","name":"Do I have to change where my logs go?","acceptedAnswer":{"@type":"Answer","text":"No, and you keep the platform you already pay for. evlog produces the events, a drain ships them: Axiom, Datadog, Sentry, Better Stack, PostHog, Loki, ClickHouse, OTLP, or the filesystem. Changing provider is a drain swap, not an architecture change, because your handlers never name a destination. If you are building the platform rather than buying one, that same pipeline is where you plug in. See how a drain keeps the destination out of your code ."}},{"@type":"Question","name":"Will it cost me more to ship these logs?","acceptedAnswer":{"@type":"Answer","text":"It usually costs less. One request leaves one event instead of four lines, which measures 56% fewer bytes and 75% fewer events on the checkout shape in the log cost guide , because the level, timestamp, host and request bindings stop repeating on every line. Which of those two numbers moves your bill depends on your provider: most charge per GB ingested, so you save on bytes, while a provider that also bills per million events indexed rewards the event count instead. Then sampling drops what you were never going to read and force-keeps errors and slow requests. Price it against your own traffic on which number moves your bill ."}},{"@type":"Question","name":"How much work is it to adopt?","acceptedAnswer":{"@type":"Answer","text":"You migrate one handler at a time. Two calls are worth learning: log.set() , which adds context to the event in flight, and createError() , which attaches a why and a fix to an error instead of a bare stack. See how much of this you need on day one , or what evlog is if you want the shape before the code."}},{"@type":"Question","name":"What does it cost at runtime?","acceptedAnswer":{"@type":"Answer","text":"The core package has zero runtime dependencies . Execution cost depends on context size, redaction, output, and delivery. A silent construction benchmark excludes console serialization and remote export, so it cannot establish a fixed cost per production request. Follow what it costs on one real request to measure the complete path on your runtime."}}]}
{"@context":"https://schema.org","@graph":[{"@id":"https://www.evlog.dev/#website","@type":"WebSite","description":"Digging through logs is not observability. It's hope. evlog is a TypeScript logger: structured logs, wide events and actionable errors in one API.","inLanguage":"en","name":"evlog","url":"https://www.evlog.dev/"},{"@id":"https://www.evlog.dev#webpage","@type":"WebPage","description":"Digging through logs is not observability. It's hope. evlog is a TypeScript logger: structured logs, wide events and actionable errors in one API.","name":"evlog — TypeScript logger for wide events & structured logs","url":"https://www.evlog.dev","isPartOf":{"@id":"https://www.evlog.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://www.evlog.dev"]}]},{"@id":"https://www.evlog.dev#/schema/software-application/1","@type":"SoftwareApplication","applicationCategory":"DeveloperApplication","description":"Digging through logs is not observability. It's hope. evlog is a TypeScript logger: structured logs, wide events and actionable errors in one API.","name":"evlog","operatingSystem":"Node.js, Bun, Deno, Cloudflare Workers, all major browsers","offers":{"@type":"Offer","availability":"https://schema.org/InStock","price":0,"priceCurrency":"USD","priceValidUntil":"2027-12-30T00:00:00.000Z"},"sameAs":["https://github.com/evloghq/evlog","https://www.npmjs.com/package/evlog","https://x.com/hugorcd"]}]}

og:site_nameevlog
twitter:cardsummary_large_image
og:typewebsite
og:imagehttps://www.evlog.dev/og.png
twitter:imagehttps://www.evlog.dev/og.png
og:image:width1200
og:image:height630
twitter:creator@hugorcd

Links:

evlog.evlog.https://evlog.dev/
Docshttps://evlog.dev/start/introduction
Conceptshttps://evlog.dev/learn/overview
CLIhttps://evlog.dev/cli/overview
Frameworkshttps://evlog.dev/integrate/frameworks/overview
Adaptershttps://evlog.dev/integrate/adapters/overview
Use Caseshttps://evlog.dev/use-cases/overview
Get Startedhttps://evlog.dev/start/introduction
https://github.com/evloghq/evlog
Fix your logshttps://evlog.dev/start/installation
GitHubhttps://github.com/evloghq/evlog
https://vercel.com
https://nuxt.com
https://www.prisma.io
https://www.adobe.com
https://inth.com/
https://www.databuddy.cc
Quick start guide https://evlog.dev/start/quick-start
Agent skills setup https://evlog.dev/reference/agent-skills
evlog map guide https://evlog.dev/cli/map
Explore adapters https://evlog.dev/integrate/adapters/overview
Client logging guide https://evlog.dev/use-cases/client-logging
Sampling guide https://evlog.dev/learn/sampling
Audit logs guide https://evlog.dev/use-cases/audit/overview
AI SDK integration https://evlog.dev/use-cases/ai-sdk/overview
Benchmark results https://evlog.dev/reference/performance
Framework integrations https://evlog.dev/integrate/frameworks/overview
Vitehttps://evlog.dev/reference/vite-plugin
cataloghttps://evlog.dev/learn/catalogs
the comparison for your stackhttps://evlog.dev/reference/vs-other-loggers#choose-the-comparison-for-your-stack
adding it to an app already in productionhttps://evlog.dev/cli/map#adding-it-to-an-app-already-in-production
how a drain keeps the destination out of your codehttps://evlog.dev/integrate/adapters/overview#send-events-without-naming-a-destination-in-your-code
log cost guidehttps://evlog.dev/reference/cost
samplinghttps://evlog.dev/learn/sampling
which number moves your billhttps://evlog.dev/reference/cost#which-number-moves-your-bill
how much of this you need on day onehttps://evlog.dev/start/quick-start#how-much-of-this-do-you-need-on-day-one
what evlog ishttps://evlog.dev/start/introduction
what it costs on one real requesthttps://evlog.dev/reference/performance#what-it-costs-on-one-real-request
Get Started https://evlog.dev/start/installation
View on GitHub https://github.com/evloghq/evlog
Introductionhttps://evlog.dev/start/introduction
Quick starthttps://evlog.dev/start/quick-start
Configurationhttps://evlog.dev/reference/configuration
CLIhttps://evlog.dev/cli/overview
Performancehttps://evlog.dev/reference/performance
Log costhttps://evlog.dev/reference/cost
Structured logging in Node.jshttps://evlog.dev/use-cases/structured-logging-nodejs
Wide eventshttps://evlog.dev/learn/wide-events
Structured errorshttps://evlog.dev/learn/structured-errors
Samplinghttps://evlog.dev/learn/sampling
Client logginghttps://evlog.dev/use-cases/client-logging
Enrichershttps://evlog.dev/use-cases/enrichers
Nuxthttps://evlog.dev/integrate/frameworks/nuxt
Next.jshttps://evlog.dev/integrate/frameworks/nextjs
TanStack Starthttps://evlog.dev/integrate/frameworks/tanstack-start
Honohttps://evlog.dev/integrate/frameworks/hono
Expresshttps://evlog.dev/integrate/frameworks/express
Drains & adaptershttps://evlog.dev/integrate/adapters/overview
vs Pinohttps://evlog.dev/compare/pino
vs Winstonhttps://evlog.dev/compare/winston
vs LogTapehttps://evlog.dev/compare/logtape
vs LogLayerhttps://evlog.dev/compare/loglayer
vs Consolahttps://evlog.dev/compare/consola
OpenTelemetryhttps://evlog.dev/compare/opentelemetry
All loggershttps://evlog.dev/reference/vs-other-loggers
GitHub↗ (opens in a new tab)https://github.com/evloghq/evlog
Releases↗ (opens in a new tab)https://github.com/evloghq/evlog/releases
npm↗ (opens in a new tab)https://www.npmjs.com/package/evlog
llms.txt↗ (opens in a new tab)https://evlog.dev/llms.txt
Sitemap↗ (opens in a new tab)https://evlog.dev/sitemap.xml
HugoRCDhttps://hrcd.fr/
x.comhttps://x.com/hugorcd
githubhttps://github.com/evloghq/evlog

Viewport: width=device-width, initial-scale=1

Robots: index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1


URLs of crawlers that visited me.