[{"data":1,"prerenderedAt":3105},["ShallowReactive",2],{"navigation_docs":3,"-integrate-frameworks-cloudflare-workers":528,"-integrate-frameworks-cloudflare-workers-surround":3100},[4,29,76,122,304,435,496],{"title":5,"path":6,"stem":7,"children":8,"page":28},"Start","\u002Fstart","1.start",[9,13,18,23],{"title":10,"path":11,"stem":12},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction",{"title":14,"path":15,"stem":16,"icon":17},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":19,"path":20,"stem":21,"icon":22},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":24,"path":25,"stem":26,"icon":27},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":30,"path":31,"stem":32,"children":33,"page":28},"Learn","\u002Flearn","2.learn",[34,38,43,48,53,58,62,67,72],{"title":35,"path":36,"stem":37},"Learn evlog","\u002Flearn\u002Foverview","2.learn\u002F0.overview",{"title":39,"path":40,"stem":41,"icon":42},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":44,"path":45,"stem":46,"icon":47},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":49,"path":50,"stem":51,"icon":52},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":54,"path":55,"stem":56,"icon":57},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":59,"path":60,"stem":61},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling",{"title":63,"path":64,"stem":65,"icon":66},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":68,"path":69,"stem":70,"icon":71},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":73,"path":74,"stem":75},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs",{"title":77,"path":78,"stem":79,"children":80,"page":28},"CLI","\u002Fcli","3.cli",[81,85,90,95,99,103,108,113,118],{"title":82,"path":83,"stem":84},"evlog CLI","\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":86,"path":87,"stem":88,"icon":89},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":91,"path":92,"stem":93,"icon":94},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":96,"path":97,"stem":98},"Map rules","\u002Fcli\u002Frules","3.cli\u002F3.rules",{"title":100,"path":101,"stem":102},"Map scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring",{"title":104,"path":105,"stem":106,"icon":107},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":109,"path":110,"stem":111,"icon":112},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":114,"path":115,"stem":116,"icon":117},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":119,"path":120,"stem":121},"evlog agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents",{"title":123,"path":124,"stem":125,"children":126,"page":28},"Integrate","\u002Fintegrate","4.integrate",[127,132,216],{"title":128,"path":129,"stem":130,"icon":131},"Overview","\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":133,"path":134,"stem":135,"children":136,"page":28},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[137,141,171,196],{"title":128,"path":138,"stem":139,"icon":140},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview","i-lucide-list",{"title":142,"path":143,"stem":144,"children":145,"page":28},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[146,151,156,161,166],{"title":147,"path":148,"stem":149,"icon":150},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":152,"path":153,"stem":154,"icon":155},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":157,"path":158,"stem":159,"icon":160},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":162,"path":163,"stem":164,"icon":165},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":167,"path":168,"stem":169,"icon":170},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":172,"path":173,"stem":174,"children":175,"page":28},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[176,181,186,191],{"title":177,"path":178,"stem":179,"icon":180},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":182,"path":183,"stem":184,"icon":185},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":187,"path":188,"stem":189,"icon":190},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":192,"path":193,"stem":194,"icon":195},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":197,"path":198,"stem":199,"children":200,"page":28},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[201,206,211],{"title":202,"path":203,"stem":204,"icon":205},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":207,"path":208,"stem":209,"icon":210},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":212,"path":213,"stem":214,"icon":215},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":217,"path":218,"stem":219,"children":220,"page":28},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[221,225,230,235,240,245,250,255,260,265,270,275,280,285,289,294,299],{"title":128,"path":222,"stem":223,"icon":224},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":226,"path":227,"stem":228,"icon":229},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":231,"path":232,"stem":233,"icon":234},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":236,"path":237,"stem":238,"icon":239},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":241,"path":242,"stem":243,"icon":244},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":246,"path":247,"stem":248,"icon":249},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":251,"path":252,"stem":253,"icon":254},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":256,"path":257,"stem":258,"icon":259},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":261,"path":262,"stem":263,"icon":264},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":266,"path":267,"stem":268,"icon":269},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":271,"path":272,"stem":273,"icon":274},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":276,"path":277,"stem":278,"icon":279},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":281,"path":282,"stem":283,"icon":284},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":286,"path":287,"stem":288,"icon":71},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":290,"path":291,"stem":292,"icon":293},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":295,"path":296,"stem":297,"icon":298},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":300,"path":301,"stem":302,"icon":303},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":305,"path":306,"stem":307,"children":308,"page":28},"Use Cases","\u002Fuse-cases","5.use-cases",[309,312,317,346,374,407,427,431],{"title":305,"path":310,"stem":311},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":313,"path":314,"stem":315,"icon":316},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":318,"icon":319,"path":320,"stem":321,"children":322,"page":28},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[323,326,331,336,341],{"title":128,"path":324,"stem":325,"icon":140},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":327,"path":328,"stem":329,"icon":330},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":332,"path":333,"stem":334,"icon":335},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":337,"path":338,"stem":339,"icon":340},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":342,"path":343,"stem":344,"icon":345},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":347,"icon":348,"path":349,"stem":350,"children":351,"page":28},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[352,355,360,365,369],{"title":128,"path":353,"stem":354,"icon":140},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":356,"path":357,"stem":358,"icon":359},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":361,"path":362,"stem":363,"icon":364},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":366,"path":367,"stem":368,"icon":316},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":370,"path":371,"stem":372,"icon":373},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":375,"icon":376,"path":377,"stem":378,"children":379,"page":28},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[380,383,388,393,398,402],{"title":128,"path":381,"stem":382,"icon":140},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":384,"path":385,"stem":386,"icon":387},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":389,"path":390,"stem":391,"icon":392},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":394,"path":395,"stem":396,"icon":397},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":399,"path":400,"stem":401,"icon":376},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":403,"path":404,"stem":405,"icon":406},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes","i-lucide-book-open",{"title":342,"icon":373,"path":408,"stem":409,"children":410,"page":28},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[411,414,419,423],{"title":128,"path":412,"stem":413,"icon":140},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":415,"path":416,"stem":417,"icon":418},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":420,"path":421,"stem":422},"Telemetry Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest",{"title":424,"path":425,"stem":426,"icon":406},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":428,"path":429,"stem":430},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers",{"title":432,"path":433,"stem":434},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve",{"title":436,"path":437,"stem":438,"children":439,"page":28},"Extend","\u002Fextend","6.extend",[440,444,449,454,458,463,467,471,476,481,486,491],{"title":128,"path":441,"stem":442,"icon":443},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":445,"path":446,"stem":447,"icon":448},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":450,"path":451,"stem":452,"icon":453},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":455,"path":456,"stem":457,"icon":448},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":459,"path":460,"stem":461,"icon":462},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":403,"path":464,"stem":465,"icon":466},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":468,"path":469,"stem":470},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":472,"path":473,"stem":474,"icon":475},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers","i-lucide-sparkles",{"title":477,"path":478,"stem":479,"icon":480},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling","i-lucide-filter",{"title":482,"path":483,"stem":484,"icon":485},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":487,"path":488,"stem":489,"icon":490},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":492,"path":493,"stem":494,"icon":495},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":424,"path":497,"stem":498,"children":499,"page":28},"\u002Freference","7.reference",[500,504,507,512,516,520,524],{"title":501,"path":502,"stem":503},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration",{"title":370,"path":505,"stem":506,"icon":373},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":508,"path":509,"stem":510,"icon":511},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":513,"path":514,"stem":515,"icon":376},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":517,"path":518,"stem":519},"evlog vs pino, winston, consola","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers",{"title":521,"path":522,"stem":523,"icon":475},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":525,"path":526,"stem":527},"Log cost","\u002Freference\u002Fcost","7.reference\u002F7.cost",{"id":529,"title":281,"body":530,"description":3093,"extension":3094,"links":3095,"meta":3096,"navigation":3097,"path":282,"seo":3098,"stem":283,"__hash__":3099},"docs\u002F4.integrate\u002Fframeworks\u002F12.cloudflare-workers.md",{"type":531,"value":532,"toc":3078},"minimark",[533,542,560,607,611,616,687,691,931,954,985,988,993,1401,1405,1417,1585,1626,1629,1632,2057,2122,2126,2132,2671,2674,2685,2689,2695,2978,2985,2989,2992,3021,3025,3039,3043,3074],[534,535,536,537,541],"p",{},"The ",[538,539,540],"code",{},"evlog\u002Fworkers"," adapter instruments Cloudflare Workers and Durable Objects with request-scoped loggers carrying Cloudflare-specific context.",[534,543,544,545,551,552,555,556,559],{},"Use ",[546,547,548],"strong",{},[538,549,550],{},"withEvlog"," to get the same middleware pipeline as every other framework integration: route filtering, redaction, enrich, tail sampling, plugins, drains, and automatic emit. Reach for ",[538,553,554],{},"defineWorkerFetch"," or ",[538,557,558],{},"createWorkersLogger"," when you'd rather own the emit yourself.",[561,562,565,568,593],"prompt",{":actions":563,"description":564,"icon":284},"[\"copy\",\"cursor\",\"claude\"]","Set up evlog in my Cloudflare Worker",[534,566,567],{},"Set up evlog in my Cloudflare Worker.",[569,570,571,575,578,581,587,590],"ul",{},[572,573,574],"li",{},"Install evlog: pnpm add evlog",[572,576,577],{},"Import initWorkersLogger and withEvlog from 'evlog\u002Fworkers'",[572,579,580],{},"Call initWorkersLogger({ env: { service: 'my-worker' } }) at the top level",[572,582,583,584,586],{},"Wrap the fetch handler with ",[546,585,550],{}," (recommended) — it emits the wide event for you and accepts include\u002Fexclude, routes, redact, enrich, keep, plugins and drain",[572,588,589],{},"Use log.set() to accumulate context throughout the request",[572,591,592],{},"Only use defineWorkerFetch or createWorkersLogger if you want to call log.emit() yourself",[534,594,595,596,602,603],{},"Docs: ",[597,598,599],"a",{"href":599,"rel":600},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers",[601],"nofollow","\nAdapters: ",[597,604,605],{"href":605,"rel":606},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fadapters\u002Foverview",[601],[608,609,24],"h2",{"id":610},"quick-start",[612,613,615],"h3",{"id":614},"_1-install","1. Install",[617,618,619,644,658,672],"code-group",{},[620,621,627],"pre",{"className":622,"code":623,"filename":624,"language":625,"meta":626,"style":626},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog\n","pnpm","bash","",[538,628,629],{"__ignoreMap":626},[630,631,634,637,641],"span",{"class":632,"line":633},"line",1,[630,635,624],{"class":636},"sBMFI",[630,638,640],{"class":639},"sfazB"," add",[630,642,643],{"class":639}," evlog\n",[620,645,648],{"className":622,"code":646,"filename":647,"language":625,"meta":626,"style":626},"bun add evlog\n","bun",[538,649,650],{"__ignoreMap":626},[630,651,652,654,656],{"class":632,"line":633},[630,653,647],{"class":636},[630,655,640],{"class":639},[630,657,643],{"class":639},[620,659,662],{"className":622,"code":660,"filename":661,"language":625,"meta":626,"style":626},"yarn add evlog\n","yarn",[538,663,664],{"__ignoreMap":626},[630,665,666,668,670],{"class":632,"line":633},[630,667,661],{"class":636},[630,669,640],{"class":639},[630,671,643],{"class":639},[620,673,676],{"className":622,"code":674,"filename":675,"language":625,"meta":626,"style":626},"npm install evlog\n","npm",[538,677,678],{"__ignoreMap":626},[630,679,680,682,685],{"class":632,"line":633},[630,681,675],{"class":636},[630,683,684],{"class":639}," install",[630,686,643],{"class":639},[612,688,690],{"id":689},"_2-wrap-your-fetch-handler","2. Wrap your fetch handler",[620,692,697],{"className":693,"code":694,"filename":695,"language":696,"meta":626,"style":626},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { initWorkersLogger, withEvlog } from 'evlog\u002Fworkers'\n\ninitWorkersLogger({\n  env: { service: 'my-worker' },\n})\n\nexport default withEvlog(async (request, _env, _ctx, log) => {\n  log.set({ action: 'handle_request' })\n\n  \u002F\u002F ... your handler logic\n\n  return Response.json({ ok: true })\n})\n","src\u002Fworker.ts","typescript",[538,698,699,733,740,753,781,790,795,843,876,881,888,893,924],{"__ignoreMap":626},[630,700,701,705,709,713,716,719,722,725,728,730],{"class":632,"line":633},[630,702,704],{"class":703},"s7zQu","import",[630,706,708],{"class":707},"sMK4o"," {",[630,710,712],{"class":711},"sTEyZ"," initWorkersLogger",[630,714,715],{"class":707},",",[630,717,718],{"class":711}," withEvlog",[630,720,721],{"class":707}," }",[630,723,724],{"class":703}," from",[630,726,727],{"class":707}," '",[630,729,540],{"class":639},[630,731,732],{"class":707},"'\n",[630,734,736],{"class":632,"line":735},2,[630,737,739],{"emptyLinePlaceholder":738},true,"\n",[630,741,743,747,750],{"class":632,"line":742},3,[630,744,746],{"class":745},"s2Zo4","initWorkersLogger",[630,748,749],{"class":711},"(",[630,751,752],{"class":707},"{\n",[630,754,756,760,763,765,768,770,772,775,778],{"class":632,"line":755},4,[630,757,759],{"class":758},"swJcz","  env",[630,761,762],{"class":707},":",[630,764,708],{"class":707},[630,766,767],{"class":758}," service",[630,769,762],{"class":707},[630,771,727],{"class":707},[630,773,774],{"class":639},"my-worker",[630,776,777],{"class":707},"'",[630,779,780],{"class":707}," },\n",[630,782,784,787],{"class":632,"line":783},5,[630,785,786],{"class":707},"}",[630,788,789],{"class":711},")\n",[630,791,793],{"class":632,"line":792},6,[630,794,739],{"emptyLinePlaceholder":738},[630,796,798,801,804,806,808,812,815,819,821,824,826,829,831,834,837,840],{"class":632,"line":797},7,[630,799,800],{"class":703},"export",[630,802,803],{"class":703}," default",[630,805,718],{"class":745},[630,807,749],{"class":711},[630,809,811],{"class":810},"spNyl","async",[630,813,814],{"class":707}," (",[630,816,818],{"class":817},"sHdIc","request",[630,820,715],{"class":707},[630,822,823],{"class":817}," _env",[630,825,715],{"class":707},[630,827,828],{"class":817}," _ctx",[630,830,715],{"class":707},[630,832,833],{"class":817}," log",[630,835,836],{"class":707},")",[630,838,839],{"class":810}," =>",[630,841,842],{"class":707}," {\n",[630,844,846,849,852,855,857,860,863,865,867,870,872,874],{"class":632,"line":845},8,[630,847,848],{"class":711},"  log",[630,850,851],{"class":707},".",[630,853,854],{"class":745},"set",[630,856,749],{"class":758},[630,858,859],{"class":707},"{",[630,861,862],{"class":758}," action",[630,864,762],{"class":707},[630,866,727],{"class":707},[630,868,869],{"class":639},"handle_request",[630,871,777],{"class":707},[630,873,721],{"class":707},[630,875,789],{"class":758},[630,877,879],{"class":632,"line":878},9,[630,880,739],{"emptyLinePlaceholder":738},[630,882,884],{"class":632,"line":883},10,[630,885,887],{"class":886},"sHwdD","  \u002F\u002F ... your handler logic\n",[630,889,891],{"class":632,"line":890},11,[630,892,739],{"emptyLinePlaceholder":738},[630,894,896,899,902,904,907,909,911,914,916,920,922],{"class":632,"line":895},12,[630,897,898],{"class":703},"  return",[630,900,901],{"class":711}," Response",[630,903,851],{"class":707},[630,905,906],{"class":745},"json",[630,908,749],{"class":758},[630,910,859],{"class":707},[630,912,913],{"class":758}," ok",[630,915,762],{"class":707},[630,917,919],{"class":918},"sfNiH"," true",[630,921,721],{"class":707},[630,923,789],{"class":758},[630,925,927,929],{"class":632,"line":926},13,[630,928,786],{"class":707},[630,930,789],{"class":711},[534,932,933,935,936,939,940,943,944,949,950,953],{},[538,934,550],{}," emits one wide event per request when the handler returns, with no manual ",[538,937,938],{},"log.emit()",". It reads ",[538,941,942],{},"ExecutionContext"," off the third argument, so async ",[546,945,946],{},[538,947,948],{},"drain"," calls (PostHog, Axiom, …) are registered with ",[538,951,952],{},"waitUntil"," and stay alive after the response is returned. Streaming responses defer the emit until the body completes.",[534,955,956,959,960,963,964,967,968,971,972,971,975,971,977,980,981,984],{},[538,957,958],{},"requestId"," comes from ",[538,961,962],{},"x-request-id"," when the caller sends one, falling back to ",[538,965,966],{},"cf-ray",". ",[538,969,970],{},"method",", ",[538,973,974],{},"path",[538,976,966],{},[538,978,979],{},"traceparent"," and the safe subset of ",[538,982,983],{},"request.cf"," are captured automatically.",[612,986,332],{"id":987},"options",[534,989,990,992],{},[538,991,550],{}," accepts the same options as every other framework integration:",[620,994,996],{"className":693,"code":995,"filename":695,"language":696,"meta":626,"style":626},"import { initWorkersLogger, withEvlog } from 'evlog\u002Fworkers'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\ninitWorkersLogger({ env: { service: 'my-worker' } })\n\nexport default withEvlog(\n  async (request, env, ctx, log) => {\n    log.set({ route: 'checkout' })\n    return Response.json({ ok: true })\n  },\n  {\n    drain: createAxiomDrain(),\n    exclude: ['\u002Fhealth'],\n    routes: { '\u002Fapi\u002F**': { service: 'api' } },\n    redact: true,\n    enrich: (ctx) => {\n      ctx.event.colo = ctx.event.colo ?? 'unknown'\n    },\n    keep: (ctx) => {\n      if (ctx.duration > 1000) ctx.shouldKeep = true\n    },\n  },\n)\n",[538,997,998,1020,1040,1044,1075,1079,1090,1118,1147,1172,1177,1182,1197,1219,1255,1267,1286,1325,1331,1349,1386,1391,1396],{"__ignoreMap":626},[630,999,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018],{"class":632,"line":633},[630,1001,704],{"class":703},[630,1003,708],{"class":707},[630,1005,712],{"class":711},[630,1007,715],{"class":707},[630,1009,718],{"class":711},[630,1011,721],{"class":707},[630,1013,724],{"class":703},[630,1015,727],{"class":707},[630,1017,540],{"class":639},[630,1019,732],{"class":707},[630,1021,1022,1024,1026,1029,1031,1033,1035,1038],{"class":632,"line":735},[630,1023,704],{"class":703},[630,1025,708],{"class":707},[630,1027,1028],{"class":711}," createAxiomDrain",[630,1030,721],{"class":707},[630,1032,724],{"class":703},[630,1034,727],{"class":707},[630,1036,1037],{"class":639},"evlog\u002Faxiom",[630,1039,732],{"class":707},[630,1041,1042],{"class":632,"line":742},[630,1043,739],{"emptyLinePlaceholder":738},[630,1045,1046,1048,1050,1052,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073],{"class":632,"line":755},[630,1047,746],{"class":745},[630,1049,749],{"class":711},[630,1051,859],{"class":707},[630,1053,1054],{"class":758}," env",[630,1056,762],{"class":707},[630,1058,708],{"class":707},[630,1060,767],{"class":758},[630,1062,762],{"class":707},[630,1064,727],{"class":707},[630,1066,774],{"class":639},[630,1068,777],{"class":707},[630,1070,721],{"class":707},[630,1072,721],{"class":707},[630,1074,789],{"class":711},[630,1076,1077],{"class":632,"line":783},[630,1078,739],{"emptyLinePlaceholder":738},[630,1080,1081,1083,1085,1087],{"class":632,"line":792},[630,1082,800],{"class":703},[630,1084,803],{"class":703},[630,1086,718],{"class":745},[630,1088,1089],{"class":711},"(\n",[630,1091,1092,1095,1097,1099,1101,1103,1105,1108,1110,1112,1114,1116],{"class":632,"line":797},[630,1093,1094],{"class":810},"  async",[630,1096,814],{"class":707},[630,1098,818],{"class":817},[630,1100,715],{"class":707},[630,1102,1054],{"class":817},[630,1104,715],{"class":707},[630,1106,1107],{"class":817}," ctx",[630,1109,715],{"class":707},[630,1111,833],{"class":817},[630,1113,836],{"class":707},[630,1115,839],{"class":810},[630,1117,842],{"class":707},[630,1119,1120,1123,1125,1127,1129,1131,1134,1136,1138,1141,1143,1145],{"class":632,"line":845},[630,1121,1122],{"class":711},"    log",[630,1124,851],{"class":707},[630,1126,854],{"class":745},[630,1128,749],{"class":758},[630,1130,859],{"class":707},[630,1132,1133],{"class":758}," route",[630,1135,762],{"class":707},[630,1137,727],{"class":707},[630,1139,1140],{"class":639},"checkout",[630,1142,777],{"class":707},[630,1144,721],{"class":707},[630,1146,789],{"class":758},[630,1148,1149,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170],{"class":632,"line":878},[630,1150,1151],{"class":703},"    return",[630,1153,901],{"class":711},[630,1155,851],{"class":707},[630,1157,906],{"class":745},[630,1159,749],{"class":758},[630,1161,859],{"class":707},[630,1163,913],{"class":758},[630,1165,762],{"class":707},[630,1167,919],{"class":918},[630,1169,721],{"class":707},[630,1171,789],{"class":758},[630,1173,1174],{"class":632,"line":883},[630,1175,1176],{"class":707},"  },\n",[630,1178,1179],{"class":632,"line":890},[630,1180,1181],{"class":707},"  {\n",[630,1183,1184,1187,1189,1191,1194],{"class":632,"line":895},[630,1185,1186],{"class":758},"    drain",[630,1188,762],{"class":707},[630,1190,1028],{"class":745},[630,1192,1193],{"class":711},"()",[630,1195,1196],{"class":707},",\n",[630,1198,1199,1202,1204,1207,1209,1212,1214,1217],{"class":632,"line":926},[630,1200,1201],{"class":758},"    exclude",[630,1203,762],{"class":707},[630,1205,1206],{"class":711}," [",[630,1208,777],{"class":707},[630,1210,1211],{"class":639},"\u002Fhealth",[630,1213,777],{"class":707},[630,1215,1216],{"class":711},"]",[630,1218,1196],{"class":707},[630,1220,1222,1225,1227,1229,1231,1234,1236,1238,1240,1242,1244,1246,1249,1251,1253],{"class":632,"line":1221},14,[630,1223,1224],{"class":758},"    routes",[630,1226,762],{"class":707},[630,1228,708],{"class":707},[630,1230,727],{"class":707},[630,1232,1233],{"class":758},"\u002Fapi\u002F**",[630,1235,777],{"class":707},[630,1237,762],{"class":707},[630,1239,708],{"class":707},[630,1241,767],{"class":758},[630,1243,762],{"class":707},[630,1245,727],{"class":707},[630,1247,1248],{"class":639},"api",[630,1250,777],{"class":707},[630,1252,721],{"class":707},[630,1254,780],{"class":707},[630,1256,1258,1261,1263,1265],{"class":632,"line":1257},15,[630,1259,1260],{"class":758},"    redact",[630,1262,762],{"class":707},[630,1264,919],{"class":918},[630,1266,1196],{"class":707},[630,1268,1270,1273,1275,1277,1280,1282,1284],{"class":632,"line":1269},16,[630,1271,1272],{"class":745},"    enrich",[630,1274,762],{"class":707},[630,1276,814],{"class":707},[630,1278,1279],{"class":817},"ctx",[630,1281,836],{"class":707},[630,1283,839],{"class":810},[630,1285,842],{"class":707},[630,1287,1289,1292,1294,1297,1299,1302,1305,1307,1309,1311,1313,1315,1318,1320,1323],{"class":632,"line":1288},17,[630,1290,1291],{"class":711},"      ctx",[630,1293,851],{"class":707},[630,1295,1296],{"class":711},"event",[630,1298,851],{"class":707},[630,1300,1301],{"class":711},"colo",[630,1303,1304],{"class":707}," =",[630,1306,1107],{"class":711},[630,1308,851],{"class":707},[630,1310,1296],{"class":711},[630,1312,851],{"class":707},[630,1314,1301],{"class":711},[630,1316,1317],{"class":707}," ??",[630,1319,727],{"class":707},[630,1321,1322],{"class":639},"unknown",[630,1324,732],{"class":707},[630,1326,1328],{"class":632,"line":1327},18,[630,1329,1330],{"class":707},"    },\n",[630,1332,1334,1337,1339,1341,1343,1345,1347],{"class":632,"line":1333},19,[630,1335,1336],{"class":745},"    keep",[630,1338,762],{"class":707},[630,1340,814],{"class":707},[630,1342,1279],{"class":817},[630,1344,836],{"class":707},[630,1346,839],{"class":810},[630,1348,842],{"class":707},[630,1350,1352,1355,1357,1359,1361,1364,1367,1371,1374,1376,1378,1381,1383],{"class":632,"line":1351},20,[630,1353,1354],{"class":703},"      if",[630,1356,814],{"class":758},[630,1358,1279],{"class":711},[630,1360,851],{"class":707},[630,1362,1363],{"class":711},"duration",[630,1365,1366],{"class":707}," >",[630,1368,1370],{"class":1369},"sbssI"," 1000",[630,1372,1373],{"class":758},") ",[630,1375,1279],{"class":711},[630,1377,851],{"class":707},[630,1379,1380],{"class":711},"shouldKeep",[630,1382,1304],{"class":707},[630,1384,1385],{"class":918}," true\n",[630,1387,1389],{"class":632,"line":1388},21,[630,1390,1330],{"class":707},[630,1392,1394],{"class":632,"line":1393},22,[630,1395,1176],{"class":707},[630,1397,1399],{"class":632,"line":1398},23,[630,1400,789],{"class":711},[612,1402,1404],{"id":1403},"emitting-manually","Emitting manually",[534,1406,1407,1408,1410,1411,1413,1414,1416],{},"Prefer to own the emit? ",[538,1409,554],{}," wires ",[538,1412,942],{}," for you but leaves ",[538,1415,938],{}," to you:",[620,1418,1420],{"className":693,"code":1419,"filename":695,"language":696,"meta":626,"style":626},"import { defineWorkerFetch, initWorkersLogger } from 'evlog\u002Fworkers'\n\ninitWorkersLogger({ env: { service: 'my-worker' } })\n\nexport default defineWorkerFetch(async (request, _env, _ctx, log) => {\n  log.set({ action: 'handle_request' })\n  log.emit()\n  return Response.json({ ok: true })\n})\n",[538,1421,1422,1445,1449,1479,1483,1517,1543,1555,1579],{"__ignoreMap":626},[630,1423,1424,1426,1428,1431,1433,1435,1437,1439,1441,1443],{"class":632,"line":633},[630,1425,704],{"class":703},[630,1427,708],{"class":707},[630,1429,1430],{"class":711}," defineWorkerFetch",[630,1432,715],{"class":707},[630,1434,712],{"class":711},[630,1436,721],{"class":707},[630,1438,724],{"class":703},[630,1440,727],{"class":707},[630,1442,540],{"class":639},[630,1444,732],{"class":707},[630,1446,1447],{"class":632,"line":735},[630,1448,739],{"emptyLinePlaceholder":738},[630,1450,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469,1471,1473,1475,1477],{"class":632,"line":742},[630,1452,746],{"class":745},[630,1454,749],{"class":711},[630,1456,859],{"class":707},[630,1458,1054],{"class":758},[630,1460,762],{"class":707},[630,1462,708],{"class":707},[630,1464,767],{"class":758},[630,1466,762],{"class":707},[630,1468,727],{"class":707},[630,1470,774],{"class":639},[630,1472,777],{"class":707},[630,1474,721],{"class":707},[630,1476,721],{"class":707},[630,1478,789],{"class":711},[630,1480,1481],{"class":632,"line":755},[630,1482,739],{"emptyLinePlaceholder":738},[630,1484,1485,1487,1489,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513,1515],{"class":632,"line":783},[630,1486,800],{"class":703},[630,1488,803],{"class":703},[630,1490,1430],{"class":745},[630,1492,749],{"class":711},[630,1494,811],{"class":810},[630,1496,814],{"class":707},[630,1498,818],{"class":817},[630,1500,715],{"class":707},[630,1502,823],{"class":817},[630,1504,715],{"class":707},[630,1506,828],{"class":817},[630,1508,715],{"class":707},[630,1510,833],{"class":817},[630,1512,836],{"class":707},[630,1514,839],{"class":810},[630,1516,842],{"class":707},[630,1518,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541],{"class":632,"line":792},[630,1520,848],{"class":711},[630,1522,851],{"class":707},[630,1524,854],{"class":745},[630,1526,749],{"class":758},[630,1528,859],{"class":707},[630,1530,862],{"class":758},[630,1532,762],{"class":707},[630,1534,727],{"class":707},[630,1536,869],{"class":639},[630,1538,777],{"class":707},[630,1540,721],{"class":707},[630,1542,789],{"class":758},[630,1544,1545,1547,1549,1552],{"class":632,"line":797},[630,1546,848],{"class":711},[630,1548,851],{"class":707},[630,1550,1551],{"class":745},"emit",[630,1553,1554],{"class":758},"()\n",[630,1556,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575,1577],{"class":632,"line":845},[630,1558,898],{"class":703},[630,1560,901],{"class":711},[630,1562,851],{"class":707},[630,1564,906],{"class":745},[630,1566,749],{"class":758},[630,1568,859],{"class":707},[630,1570,913],{"class":758},[630,1572,762],{"class":707},[630,1574,919],{"class":918},[630,1576,721],{"class":707},[630,1578,789],{"class":758},[630,1580,1581,1583],{"class":632,"line":878},[630,1582,786],{"class":707},[630,1584,789],{"class":711},[1586,1587,1590,1592,1593,1595,1596,1599,1600,971,1603,971,1606,971,1609,971,1612,1592,1615,1618,1619,1622,1623,1625],"callout",{"color":1588,"icon":1589},"info","i-lucide-info",[538,1591,554],{}," and ",[538,1594,558],{}," are the low-level path: they create the logger and leave the lifecycle to you, so ",[538,1597,1598],{},"include"," \u002F ",[538,1601,1602],{},"exclude",[538,1604,1605],{},"routes",[538,1607,1608],{},"redact",[538,1610,1611],{},"enrich",[538,1613,1614],{},"keep",[538,1616,1617],{},"plugins"," do ",[546,1620,1621],{},"not"," apply. Use ",[538,1624,550],{}," to get them.",[608,1627,44],{"id":1628},"wide-events",[534,1630,1631],{},"Build up context progressively, then emit at the end:",[620,1633,1635],{"className":693,"code":1634,"filename":695,"language":696,"meta":626,"style":626},"import { defineWorkerFetch, initWorkersLogger } from 'evlog\u002Fworkers'\n\ninitWorkersLogger({\n  env: { service: 'my-worker' },\n})\n\nexport default defineWorkerFetch(async (request, env, _ctx, log) => {\n  const url = new URL(request.url)\n\n  log.set({ route: url.pathname })\n\n  const user = await env.DB.prepare('SELECT * FROM users WHERE id = ?').bind(url.searchParams.get('userId')).first()\n  log.set({ user: { id: user.id, plan: user.plan } })\n\n  const orders = await env.DB.prepare('SELECT COUNT(*) as count FROM orders WHERE user_id = ?').bind(user.id).first()\n  log.set({ orders: { count: orders.count } })\n\n  log.emit()\n  return Response.json({ user, orders })\n})\n",[538,1636,1637,1659,1663,1671,1691,1697,1701,1735,1762,1766,1793,1797,1870,1920,1924,1977,2013,2017,2027,2051],{"__ignoreMap":626},[630,1638,1639,1641,1643,1645,1647,1649,1651,1653,1655,1657],{"class":632,"line":633},[630,1640,704],{"class":703},[630,1642,708],{"class":707},[630,1644,1430],{"class":711},[630,1646,715],{"class":707},[630,1648,712],{"class":711},[630,1650,721],{"class":707},[630,1652,724],{"class":703},[630,1654,727],{"class":707},[630,1656,540],{"class":639},[630,1658,732],{"class":707},[630,1660,1661],{"class":632,"line":735},[630,1662,739],{"emptyLinePlaceholder":738},[630,1664,1665,1667,1669],{"class":632,"line":742},[630,1666,746],{"class":745},[630,1668,749],{"class":711},[630,1670,752],{"class":707},[630,1672,1673,1675,1677,1679,1681,1683,1685,1687,1689],{"class":632,"line":755},[630,1674,759],{"class":758},[630,1676,762],{"class":707},[630,1678,708],{"class":707},[630,1680,767],{"class":758},[630,1682,762],{"class":707},[630,1684,727],{"class":707},[630,1686,774],{"class":639},[630,1688,777],{"class":707},[630,1690,780],{"class":707},[630,1692,1693,1695],{"class":632,"line":783},[630,1694,786],{"class":707},[630,1696,789],{"class":711},[630,1698,1699],{"class":632,"line":792},[630,1700,739],{"emptyLinePlaceholder":738},[630,1702,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1729,1731,1733],{"class":632,"line":797},[630,1704,800],{"class":703},[630,1706,803],{"class":703},[630,1708,1430],{"class":745},[630,1710,749],{"class":711},[630,1712,811],{"class":810},[630,1714,814],{"class":707},[630,1716,818],{"class":817},[630,1718,715],{"class":707},[630,1720,1054],{"class":817},[630,1722,715],{"class":707},[630,1724,828],{"class":817},[630,1726,715],{"class":707},[630,1728,833],{"class":817},[630,1730,836],{"class":707},[630,1732,839],{"class":810},[630,1734,842],{"class":707},[630,1736,1737,1740,1743,1745,1748,1751,1753,1755,1757,1760],{"class":632,"line":845},[630,1738,1739],{"class":810},"  const",[630,1741,1742],{"class":711}," url",[630,1744,1304],{"class":707},[630,1746,1747],{"class":707}," new",[630,1749,1750],{"class":745}," URL",[630,1752,749],{"class":758},[630,1754,818],{"class":711},[630,1756,851],{"class":707},[630,1758,1759],{"class":711},"url",[630,1761,789],{"class":758},[630,1763,1764],{"class":632,"line":878},[630,1765,739],{"emptyLinePlaceholder":738},[630,1767,1768,1770,1772,1774,1776,1778,1780,1782,1784,1786,1789,1791],{"class":632,"line":883},[630,1769,848],{"class":711},[630,1771,851],{"class":707},[630,1773,854],{"class":745},[630,1775,749],{"class":758},[630,1777,859],{"class":707},[630,1779,1133],{"class":758},[630,1781,762],{"class":707},[630,1783,1742],{"class":711},[630,1785,851],{"class":707},[630,1787,1788],{"class":711},"pathname",[630,1790,721],{"class":707},[630,1792,789],{"class":758},[630,1794,1795],{"class":632,"line":890},[630,1796,739],{"emptyLinePlaceholder":738},[630,1798,1799,1801,1804,1806,1809,1811,1813,1816,1818,1821,1823,1825,1828,1830,1832,1834,1837,1839,1841,1843,1846,1848,1851,1853,1855,1858,1860,1863,1865,1868],{"class":632,"line":895},[630,1800,1739],{"class":810},[630,1802,1803],{"class":711}," user",[630,1805,1304],{"class":707},[630,1807,1808],{"class":703}," await",[630,1810,1054],{"class":711},[630,1812,851],{"class":707},[630,1814,1815],{"class":711},"DB",[630,1817,851],{"class":707},[630,1819,1820],{"class":745},"prepare",[630,1822,749],{"class":758},[630,1824,777],{"class":707},[630,1826,1827],{"class":639},"SELECT * FROM users WHERE id = ?",[630,1829,777],{"class":707},[630,1831,836],{"class":758},[630,1833,851],{"class":707},[630,1835,1836],{"class":745},"bind",[630,1838,749],{"class":758},[630,1840,1759],{"class":711},[630,1842,851],{"class":707},[630,1844,1845],{"class":711},"searchParams",[630,1847,851],{"class":707},[630,1849,1850],{"class":745},"get",[630,1852,749],{"class":758},[630,1854,777],{"class":707},[630,1856,1857],{"class":639},"userId",[630,1859,777],{"class":707},[630,1861,1862],{"class":758},"))",[630,1864,851],{"class":707},[630,1866,1867],{"class":745},"first",[630,1869,1554],{"class":758},[630,1871,1872,1874,1876,1878,1880,1882,1884,1886,1888,1891,1893,1895,1897,1900,1902,1905,1907,1909,1911,1914,1916,1918],{"class":632,"line":926},[630,1873,848],{"class":711},[630,1875,851],{"class":707},[630,1877,854],{"class":745},[630,1879,749],{"class":758},[630,1881,859],{"class":707},[630,1883,1803],{"class":758},[630,1885,762],{"class":707},[630,1887,708],{"class":707},[630,1889,1890],{"class":758}," id",[630,1892,762],{"class":707},[630,1894,1803],{"class":711},[630,1896,851],{"class":707},[630,1898,1899],{"class":711},"id",[630,1901,715],{"class":707},[630,1903,1904],{"class":758}," plan",[630,1906,762],{"class":707},[630,1908,1803],{"class":711},[630,1910,851],{"class":707},[630,1912,1913],{"class":711},"plan",[630,1915,721],{"class":707},[630,1917,721],{"class":707},[630,1919,789],{"class":758},[630,1921,1922],{"class":632,"line":1221},[630,1923,739],{"emptyLinePlaceholder":738},[630,1925,1926,1928,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1952,1954,1956,1958,1960,1962,1965,1967,1969,1971,1973,1975],{"class":632,"line":1257},[630,1927,1739],{"class":810},[630,1929,1930],{"class":711}," orders",[630,1932,1304],{"class":707},[630,1934,1808],{"class":703},[630,1936,1054],{"class":711},[630,1938,851],{"class":707},[630,1940,1815],{"class":711},[630,1942,851],{"class":707},[630,1944,1820],{"class":745},[630,1946,749],{"class":758},[630,1948,777],{"class":707},[630,1950,1951],{"class":639},"SELECT COUNT(*) as count FROM orders WHERE user_id = ?",[630,1953,777],{"class":707},[630,1955,836],{"class":758},[630,1957,851],{"class":707},[630,1959,1836],{"class":745},[630,1961,749],{"class":758},[630,1963,1964],{"class":711},"user",[630,1966,851],{"class":707},[630,1968,1899],{"class":711},[630,1970,836],{"class":758},[630,1972,851],{"class":707},[630,1974,1867],{"class":745},[630,1976,1554],{"class":758},[630,1978,1979,1981,1983,1985,1987,1989,1991,1993,1995,1998,2000,2002,2004,2007,2009,2011],{"class":632,"line":1269},[630,1980,848],{"class":711},[630,1982,851],{"class":707},[630,1984,854],{"class":745},[630,1986,749],{"class":758},[630,1988,859],{"class":707},[630,1990,1930],{"class":758},[630,1992,762],{"class":707},[630,1994,708],{"class":707},[630,1996,1997],{"class":758}," count",[630,1999,762],{"class":707},[630,2001,1930],{"class":711},[630,2003,851],{"class":707},[630,2005,2006],{"class":711},"count",[630,2008,721],{"class":707},[630,2010,721],{"class":707},[630,2012,789],{"class":758},[630,2014,2015],{"class":632,"line":1288},[630,2016,739],{"emptyLinePlaceholder":738},[630,2018,2019,2021,2023,2025],{"class":632,"line":1327},[630,2020,848],{"class":711},[630,2022,851],{"class":707},[630,2024,1551],{"class":745},[630,2026,1554],{"class":758},[630,2028,2029,2031,2033,2035,2037,2039,2041,2043,2045,2047,2049],{"class":632,"line":1333},[630,2030,898],{"class":703},[630,2032,901],{"class":711},[630,2034,851],{"class":707},[630,2036,906],{"class":745},[630,2038,749],{"class":758},[630,2040,859],{"class":707},[630,2042,1803],{"class":711},[630,2044,715],{"class":707},[630,2046,1930],{"class":711},[630,2048,721],{"class":707},[630,2050,789],{"class":758},[630,2052,2053,2055],{"class":632,"line":1351},[630,2054,786],{"class":707},[630,2056,789],{"class":711},[620,2058,2061],{"className":622,"code":2059,"filename":2060,"language":625,"meta":626,"style":626},"14:58:15 INFO [my-worker] GET \u002Fapi\u002Fusers 200 in 12ms\n  ├─ orders: count=5\n  ├─ user: id=usr_123 plan=pro\n  ├─ route: \u002Fapi\u002Fusers\n  └─ requestId: 4a8ff3a8-...\n","Terminal output",[538,2062,2063,2074,2088,2101,2111],{"__ignoreMap":626},[630,2064,2065,2068,2071],{"class":632,"line":633},[630,2066,2067],{"class":636},"14:58:15",[630,2069,2070],{"class":639}," INFO",[630,2072,2073],{"class":711}," [my-worker] GET \u002Fapi\u002Fusers 200 in 12ms\n",[630,2075,2076,2079,2082,2085],{"class":632,"line":735},[630,2077,2078],{"class":636},"  ├─",[630,2080,2081],{"class":639}," orders:",[630,2083,2084],{"class":639}," count=",[630,2086,2087],{"class":1369},"5\n",[630,2089,2090,2092,2095,2098],{"class":632,"line":742},[630,2091,2078],{"class":636},[630,2093,2094],{"class":639}," user:",[630,2096,2097],{"class":639}," id=usr_123",[630,2099,2100],{"class":639}," plan=pro\n",[630,2102,2103,2105,2108],{"class":632,"line":755},[630,2104,2078],{"class":636},[630,2106,2107],{"class":639}," route:",[630,2109,2110],{"class":639}," \u002Fapi\u002Fusers\n",[630,2112,2113,2116,2119],{"class":632,"line":783},[630,2114,2115],{"class":636},"  └─",[630,2117,2118],{"class":639}," requestId:",[630,2120,2121],{"class":639}," 4a8ff3a8-...\n",[608,2123,2125],{"id":2124},"error-handling","Error Handling",[534,2127,544,2128,2131],{},[538,2129,2130],{},"createError"," for structured errors and handle them with try\u002Fcatch:",[2133,2134,2135],"code-collapse",{},[620,2136,2138],{"className":693,"code":2137,"filename":695,"language":696,"meta":626,"style":626},"import { createError, parseError } from 'evlog'\nimport { defineWorkerFetch, initWorkersLogger } from 'evlog\u002Fworkers'\n\ninitWorkersLogger({ env: { service: 'my-worker' } })\n\nexport default defineWorkerFetch(async (request, env, _ctx, log) => {\n  try {\n    const body = await request.json()\n    log.set({ payment: { amount: body.amount } })\n\n    if (body.amount \u003C= 0) {\n      throw createError({\n        status: 400,\n        message: 'Invalid payment amount',\n        why: 'The amount must be a positive number',\n        fix: 'Pass a positive integer in cents',\n      })\n    }\n\n    log.emit()\n    return Response.json({ success: true })\n  } catch (error) {\n    log.error(error instanceof Error ? error : new Error(String(error)))\n    log.emit()\n\n    const parsed = parseError(error)\n    return Response.json({\n      message: parsed.message,\n      why: parsed.why,\n      fix: parsed.fix,\n    }, { status: parsed.status })\n  }\n})\n",[538,2139,2140,2165,2187,2191,2221,2225,2259,2266,2287,2324,2328,2352,2363,2375,2391,2407,2423,2430,2435,2439,2449,2474,2491,2534,2545,2550,2568,2583,2600,2617,2634,2658,2664],{"__ignoreMap":626},[630,2141,2142,2144,2146,2149,2151,2154,2156,2158,2160,2163],{"class":632,"line":633},[630,2143,704],{"class":703},[630,2145,708],{"class":707},[630,2147,2148],{"class":711}," createError",[630,2150,715],{"class":707},[630,2152,2153],{"class":711}," parseError",[630,2155,721],{"class":707},[630,2157,724],{"class":703},[630,2159,727],{"class":707},[630,2161,2162],{"class":639},"evlog",[630,2164,732],{"class":707},[630,2166,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185],{"class":632,"line":735},[630,2168,704],{"class":703},[630,2170,708],{"class":707},[630,2172,1430],{"class":711},[630,2174,715],{"class":707},[630,2176,712],{"class":711},[630,2178,721],{"class":707},[630,2180,724],{"class":703},[630,2182,727],{"class":707},[630,2184,540],{"class":639},[630,2186,732],{"class":707},[630,2188,2189],{"class":632,"line":742},[630,2190,739],{"emptyLinePlaceholder":738},[630,2192,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2213,2215,2217,2219],{"class":632,"line":755},[630,2194,746],{"class":745},[630,2196,749],{"class":711},[630,2198,859],{"class":707},[630,2200,1054],{"class":758},[630,2202,762],{"class":707},[630,2204,708],{"class":707},[630,2206,767],{"class":758},[630,2208,762],{"class":707},[630,2210,727],{"class":707},[630,2212,774],{"class":639},[630,2214,777],{"class":707},[630,2216,721],{"class":707},[630,2218,721],{"class":707},[630,2220,789],{"class":711},[630,2222,2223],{"class":632,"line":783},[630,2224,739],{"emptyLinePlaceholder":738},[630,2226,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257],{"class":632,"line":792},[630,2228,800],{"class":703},[630,2230,803],{"class":703},[630,2232,1430],{"class":745},[630,2234,749],{"class":711},[630,2236,811],{"class":810},[630,2238,814],{"class":707},[630,2240,818],{"class":817},[630,2242,715],{"class":707},[630,2244,1054],{"class":817},[630,2246,715],{"class":707},[630,2248,828],{"class":817},[630,2250,715],{"class":707},[630,2252,833],{"class":817},[630,2254,836],{"class":707},[630,2256,839],{"class":810},[630,2258,842],{"class":707},[630,2260,2261,2264],{"class":632,"line":797},[630,2262,2263],{"class":703},"  try",[630,2265,842],{"class":707},[630,2267,2268,2271,2274,2276,2278,2281,2283,2285],{"class":632,"line":845},[630,2269,2270],{"class":810},"    const",[630,2272,2273],{"class":711}," body",[630,2275,1304],{"class":707},[630,2277,1808],{"class":703},[630,2279,2280],{"class":711}," request",[630,2282,851],{"class":707},[630,2284,906],{"class":745},[630,2286,1554],{"class":758},[630,2288,2289,2291,2293,2295,2297,2299,2302,2304,2306,2309,2311,2313,2315,2318,2320,2322],{"class":632,"line":878},[630,2290,1122],{"class":711},[630,2292,851],{"class":707},[630,2294,854],{"class":745},[630,2296,749],{"class":758},[630,2298,859],{"class":707},[630,2300,2301],{"class":758}," payment",[630,2303,762],{"class":707},[630,2305,708],{"class":707},[630,2307,2308],{"class":758}," amount",[630,2310,762],{"class":707},[630,2312,2273],{"class":711},[630,2314,851],{"class":707},[630,2316,2317],{"class":711},"amount",[630,2319,721],{"class":707},[630,2321,721],{"class":707},[630,2323,789],{"class":758},[630,2325,2326],{"class":632,"line":883},[630,2327,739],{"emptyLinePlaceholder":738},[630,2329,2330,2333,2335,2338,2340,2342,2345,2348,2350],{"class":632,"line":890},[630,2331,2332],{"class":703},"    if",[630,2334,814],{"class":758},[630,2336,2337],{"class":711},"body",[630,2339,851],{"class":707},[630,2341,2317],{"class":711},[630,2343,2344],{"class":707}," \u003C=",[630,2346,2347],{"class":1369}," 0",[630,2349,1373],{"class":758},[630,2351,752],{"class":707},[630,2353,2354,2357,2359,2361],{"class":632,"line":895},[630,2355,2356],{"class":703},"      throw",[630,2358,2148],{"class":745},[630,2360,749],{"class":758},[630,2362,752],{"class":707},[630,2364,2365,2368,2370,2373],{"class":632,"line":926},[630,2366,2367],{"class":758},"        status",[630,2369,762],{"class":707},[630,2371,2372],{"class":1369}," 400",[630,2374,1196],{"class":707},[630,2376,2377,2380,2382,2384,2387,2389],{"class":632,"line":1221},[630,2378,2379],{"class":758},"        message",[630,2381,762],{"class":707},[630,2383,727],{"class":707},[630,2385,2386],{"class":639},"Invalid payment amount",[630,2388,777],{"class":707},[630,2390,1196],{"class":707},[630,2392,2393,2396,2398,2400,2403,2405],{"class":632,"line":1257},[630,2394,2395],{"class":758},"        why",[630,2397,762],{"class":707},[630,2399,727],{"class":707},[630,2401,2402],{"class":639},"The amount must be a positive number",[630,2404,777],{"class":707},[630,2406,1196],{"class":707},[630,2408,2409,2412,2414,2416,2419,2421],{"class":632,"line":1269},[630,2410,2411],{"class":758},"        fix",[630,2413,762],{"class":707},[630,2415,727],{"class":707},[630,2417,2418],{"class":639},"Pass a positive integer in cents",[630,2420,777],{"class":707},[630,2422,1196],{"class":707},[630,2424,2425,2428],{"class":632,"line":1288},[630,2426,2427],{"class":707},"      }",[630,2429,789],{"class":758},[630,2431,2432],{"class":632,"line":1327},[630,2433,2434],{"class":707},"    }\n",[630,2436,2437],{"class":632,"line":1333},[630,2438,739],{"emptyLinePlaceholder":738},[630,2440,2441,2443,2445,2447],{"class":632,"line":1351},[630,2442,1122],{"class":711},[630,2444,851],{"class":707},[630,2446,1551],{"class":745},[630,2448,1554],{"class":758},[630,2450,2451,2453,2455,2457,2459,2461,2463,2466,2468,2470,2472],{"class":632,"line":1388},[630,2452,1151],{"class":703},[630,2454,901],{"class":711},[630,2456,851],{"class":707},[630,2458,906],{"class":745},[630,2460,749],{"class":758},[630,2462,859],{"class":707},[630,2464,2465],{"class":758}," success",[630,2467,762],{"class":707},[630,2469,919],{"class":918},[630,2471,721],{"class":707},[630,2473,789],{"class":758},[630,2475,2476,2479,2482,2484,2487,2489],{"class":632,"line":1393},[630,2477,2478],{"class":707},"  }",[630,2480,2481],{"class":703}," catch",[630,2483,814],{"class":758},[630,2485,2486],{"class":711},"error",[630,2488,1373],{"class":758},[630,2490,752],{"class":707},[630,2492,2493,2495,2497,2499,2501,2503,2506,2509,2512,2515,2518,2520,2522,2524,2527,2529,2531],{"class":632,"line":1398},[630,2494,1122],{"class":711},[630,2496,851],{"class":707},[630,2498,2486],{"class":745},[630,2500,749],{"class":758},[630,2502,2486],{"class":711},[630,2504,2505],{"class":707}," instanceof",[630,2507,2508],{"class":636}," Error",[630,2510,2511],{"class":707}," ?",[630,2513,2514],{"class":711}," error",[630,2516,2517],{"class":707}," :",[630,2519,1747],{"class":707},[630,2521,2508],{"class":745},[630,2523,749],{"class":758},[630,2525,2526],{"class":745},"String",[630,2528,749],{"class":758},[630,2530,2486],{"class":711},[630,2532,2533],{"class":758},")))\n",[630,2535,2537,2539,2541,2543],{"class":632,"line":2536},24,[630,2538,1122],{"class":711},[630,2540,851],{"class":707},[630,2542,1551],{"class":745},[630,2544,1554],{"class":758},[630,2546,2548],{"class":632,"line":2547},25,[630,2549,739],{"emptyLinePlaceholder":738},[630,2551,2553,2555,2558,2560,2562,2564,2566],{"class":632,"line":2552},26,[630,2554,2270],{"class":810},[630,2556,2557],{"class":711}," parsed",[630,2559,1304],{"class":707},[630,2561,2153],{"class":745},[630,2563,749],{"class":758},[630,2565,2486],{"class":711},[630,2567,789],{"class":758},[630,2569,2571,2573,2575,2577,2579,2581],{"class":632,"line":2570},27,[630,2572,1151],{"class":703},[630,2574,901],{"class":711},[630,2576,851],{"class":707},[630,2578,906],{"class":745},[630,2580,749],{"class":758},[630,2582,752],{"class":707},[630,2584,2586,2589,2591,2593,2595,2598],{"class":632,"line":2585},28,[630,2587,2588],{"class":758},"      message",[630,2590,762],{"class":707},[630,2592,2557],{"class":711},[630,2594,851],{"class":707},[630,2596,2597],{"class":711},"message",[630,2599,1196],{"class":707},[630,2601,2603,2606,2608,2610,2612,2615],{"class":632,"line":2602},29,[630,2604,2605],{"class":758},"      why",[630,2607,762],{"class":707},[630,2609,2557],{"class":711},[630,2611,851],{"class":707},[630,2613,2614],{"class":711},"why",[630,2616,1196],{"class":707},[630,2618,2620,2623,2625,2627,2629,2632],{"class":632,"line":2619},30,[630,2621,2622],{"class":758},"      fix",[630,2624,762],{"class":707},[630,2626,2557],{"class":711},[630,2628,851],{"class":707},[630,2630,2631],{"class":711},"fix",[630,2633,1196],{"class":707},[630,2635,2637,2640,2642,2645,2647,2649,2651,2654,2656],{"class":632,"line":2636},31,[630,2638,2639],{"class":707},"    },",[630,2641,708],{"class":707},[630,2643,2644],{"class":758}," status",[630,2646,762],{"class":707},[630,2648,2557],{"class":711},[630,2650,851],{"class":707},[630,2652,2653],{"class":711},"status",[630,2655,721],{"class":707},[630,2657,789],{"class":758},[630,2659,2661],{"class":632,"line":2660},32,[630,2662,2663],{"class":707},"  }\n",[630,2665,2667,2669],{"class":632,"line":2666},33,[630,2668,786],{"class":707},[630,2670,789],{"class":711},[608,2672,501],{"id":2673},"configuration",[534,2675,2676,2677,2680,2681,2684],{},"See the ",[597,2678,2679],{"href":502},"Configuration reference"," for all available options (",[538,2682,2683],{},"initLogger",", middleware options, sampling, silent mode, etc.).",[608,2686,2688],{"id":2687},"drain-enrichers","Drain & Enrichers",[534,2690,2691,2692,2694],{},"Configure drain and enrichers via ",[538,2693,746],{}," options:",[620,2696,2698],{"className":693,"code":2697,"filename":695,"language":696,"meta":626,"style":626},"import { initWorkersLogger, createWorkersLogger } from 'evlog\u002Fworkers'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createUserAgentEnricher } from 'evlog\u002Fenrichers'\nimport { createDrainPipeline } from 'evlog\u002Fpipeline'\nimport type { DrainContext } from 'evlog'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>({\n  batch: { size: 50, intervalMs: 5000 },\n})\nconst drain = pipeline(createAxiomDrain())\nconst userAgent = createUserAgentEnricher()\n\ninitWorkersLogger({\n  env: { service: 'my-worker' },\n  drain,\n  enrich: (ctx) => {\n    userAgent(ctx)\n  },\n})\n",[538,2699,2700,2723,2741,2761,2781,2803,2807,2833,2862,2868,2888,2901,2905,2913,2933,2940,2957,2968,2972],{"__ignoreMap":626},[630,2701,2702,2704,2706,2708,2710,2713,2715,2717,2719,2721],{"class":632,"line":633},[630,2703,704],{"class":703},[630,2705,708],{"class":707},[630,2707,712],{"class":711},[630,2709,715],{"class":707},[630,2711,2712],{"class":711}," createWorkersLogger",[630,2714,721],{"class":707},[630,2716,724],{"class":703},[630,2718,727],{"class":707},[630,2720,540],{"class":639},[630,2722,732],{"class":707},[630,2724,2725,2727,2729,2731,2733,2735,2737,2739],{"class":632,"line":735},[630,2726,704],{"class":703},[630,2728,708],{"class":707},[630,2730,1028],{"class":711},[630,2732,721],{"class":707},[630,2734,724],{"class":703},[630,2736,727],{"class":707},[630,2738,1037],{"class":639},[630,2740,732],{"class":707},[630,2742,2743,2745,2747,2750,2752,2754,2756,2759],{"class":632,"line":742},[630,2744,704],{"class":703},[630,2746,708],{"class":707},[630,2748,2749],{"class":711}," createUserAgentEnricher",[630,2751,721],{"class":707},[630,2753,724],{"class":703},[630,2755,727],{"class":707},[630,2757,2758],{"class":639},"evlog\u002Fenrichers",[630,2760,732],{"class":707},[630,2762,2763,2765,2767,2770,2772,2774,2776,2779],{"class":632,"line":755},[630,2764,704],{"class":703},[630,2766,708],{"class":707},[630,2768,2769],{"class":711}," createDrainPipeline",[630,2771,721],{"class":707},[630,2773,724],{"class":703},[630,2775,727],{"class":707},[630,2777,2778],{"class":639},"evlog\u002Fpipeline",[630,2780,732],{"class":707},[630,2782,2783,2785,2788,2790,2793,2795,2797,2799,2801],{"class":632,"line":783},[630,2784,704],{"class":703},[630,2786,2787],{"class":703}," type",[630,2789,708],{"class":707},[630,2791,2792],{"class":711}," DrainContext",[630,2794,721],{"class":707},[630,2796,724],{"class":703},[630,2798,727],{"class":707},[630,2800,2162],{"class":639},[630,2802,732],{"class":707},[630,2804,2805],{"class":632,"line":792},[630,2806,739],{"emptyLinePlaceholder":738},[630,2808,2809,2812,2815,2818,2820,2823,2826,2829,2831],{"class":632,"line":797},[630,2810,2811],{"class":810},"const",[630,2813,2814],{"class":711}," pipeline ",[630,2816,2817],{"class":707},"=",[630,2819,2769],{"class":745},[630,2821,2822],{"class":707},"\u003C",[630,2824,2825],{"class":636},"DrainContext",[630,2827,2828],{"class":707},">",[630,2830,749],{"class":711},[630,2832,752],{"class":707},[630,2834,2835,2838,2840,2842,2845,2847,2850,2852,2855,2857,2860],{"class":632,"line":845},[630,2836,2837],{"class":758},"  batch",[630,2839,762],{"class":707},[630,2841,708],{"class":707},[630,2843,2844],{"class":758}," size",[630,2846,762],{"class":707},[630,2848,2849],{"class":1369}," 50",[630,2851,715],{"class":707},[630,2853,2854],{"class":758}," intervalMs",[630,2856,762],{"class":707},[630,2858,2859],{"class":1369}," 5000",[630,2861,780],{"class":707},[630,2863,2864,2866],{"class":632,"line":878},[630,2865,786],{"class":707},[630,2867,789],{"class":711},[630,2869,2870,2872,2875,2877,2880,2882,2885],{"class":632,"line":883},[630,2871,2811],{"class":810},[630,2873,2874],{"class":711}," drain ",[630,2876,2817],{"class":707},[630,2878,2879],{"class":745}," pipeline",[630,2881,749],{"class":711},[630,2883,2884],{"class":745},"createAxiomDrain",[630,2886,2887],{"class":711},"())\n",[630,2889,2890,2892,2895,2897,2899],{"class":632,"line":890},[630,2891,2811],{"class":810},[630,2893,2894],{"class":711}," userAgent ",[630,2896,2817],{"class":707},[630,2898,2749],{"class":745},[630,2900,1554],{"class":711},[630,2902,2903],{"class":632,"line":895},[630,2904,739],{"emptyLinePlaceholder":738},[630,2906,2907,2909,2911],{"class":632,"line":926},[630,2908,746],{"class":745},[630,2910,749],{"class":711},[630,2912,752],{"class":707},[630,2914,2915,2917,2919,2921,2923,2925,2927,2929,2931],{"class":632,"line":1221},[630,2916,759],{"class":758},[630,2918,762],{"class":707},[630,2920,708],{"class":707},[630,2922,767],{"class":758},[630,2924,762],{"class":707},[630,2926,727],{"class":707},[630,2928,774],{"class":639},[630,2930,777],{"class":707},[630,2932,780],{"class":707},[630,2934,2935,2938],{"class":632,"line":1257},[630,2936,2937],{"class":711},"  drain",[630,2939,1196],{"class":707},[630,2941,2942,2945,2947,2949,2951,2953,2955],{"class":632,"line":1269},[630,2943,2944],{"class":745},"  enrich",[630,2946,762],{"class":707},[630,2948,814],{"class":707},[630,2950,1279],{"class":817},[630,2952,836],{"class":707},[630,2954,839],{"class":810},[630,2956,842],{"class":707},[630,2958,2959,2962,2964,2966],{"class":632,"line":1288},[630,2960,2961],{"class":745},"    userAgent",[630,2963,749],{"class":758},[630,2965,1279],{"class":711},[630,2967,789],{"class":758},[630,2969,2970],{"class":632,"line":1327},[630,2971,1176],{"class":707},[630,2973,2974,2976],{"class":632,"line":1333},[630,2975,786],{"class":707},[630,2977,789],{"class":711},[1586,2979,2676,2980,1592,2982,2984],{"color":1588,"icon":1589},[597,2981,133],{"href":138},[597,2983,428],{"href":429}," docs for all available drain adapters and enrichers.",[608,2986,2988],{"id":2987},"wrangler-configuration","Wrangler Configuration",[534,2990,2991],{},"Disable Cloudflare's default invocation logs to avoid duplicates when using evlog:",[620,2993,2998],{"className":2994,"code":2995,"filename":2996,"language":2997,"meta":626,"style":626},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[observability]\nenabled = false\n","wrangler.toml","toml",[538,2999,3000,3011],{"__ignoreMap":626},[630,3001,3002,3005,3008],{"class":632,"line":633},[630,3003,3004],{"class":707},"[",[630,3006,3007],{"class":636},"observability",[630,3009,3010],{"class":707},"]\n",[630,3012,3013,3016,3018],{"class":632,"line":735},[630,3014,3015],{"class":711},"enabled ",[630,3017,2817],{"class":707},[630,3019,3020],{"class":918}," false\n",[608,3022,3024],{"id":3023},"run-locally","Run Locally",[620,3026,3029],{"className":622,"code":3027,"filename":3028,"language":625,"meta":626,"style":626},"wrangler dev\n","Terminal",[538,3030,3031],{"__ignoreMap":626},[630,3032,3033,3036],{"class":632,"line":633},[630,3034,3035],{"class":636},"wrangler",[630,3037,3038],{"class":639}," dev\n",[608,3040,3042],{"id":3041},"next-steps","Next Steps",[569,3044,3045,3050,3055,3060],{},[572,3046,3047,3049],{},[597,3048,44],{"href":45},": Design comprehensive events with context layering",[572,3051,3052,3054],{},[597,3053,133],{"href":138},": Send logs to Axiom, Sentry, PostHog, and more",[572,3056,3057,3059],{},[597,3058,59],{"href":60},": Control log volume with head and tail sampling",[572,3061,3062,3064,3065,971,3067,3069,3070,3073],{},[597,3063,49],{"href":50},": Throw errors with ",[538,3066,2614],{},[538,3068,2631],{},", and ",[538,3071,3072],{},"link"," fields",[3075,3076,3077],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":626,"searchDepth":735,"depth":735,"links":3079},[3080,3086,3087,3088,3089,3090,3091,3092],{"id":610,"depth":735,"text":24,"children":3081},[3082,3083,3084,3085],{"id":614,"depth":742,"text":615},{"id":689,"depth":742,"text":690},{"id":987,"depth":742,"text":332},{"id":1403,"depth":742,"text":1404},{"id":1628,"depth":735,"text":44},{"id":2124,"depth":735,"text":2125},{"id":2673,"depth":735,"text":501},{"id":2687,"depth":735,"text":2688},{"id":2987,"depth":735,"text":2988},{"id":3023,"depth":735,"text":3024},{"id":3041,"depth":735,"text":3042},"Wide events, structured errors, and logging in Cloudflare Workers and Durable Objects.","md",null,{},{"title":281,"icon":284},{"title":281,"description":3093},"9dNZLyhic2pGwoD7grQzZTTiVcUuuF-TIxoxRtk92Wo",[3101,3103],{"title":276,"path":277,"stem":278,"description":3102,"icon":279,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in React Router applications.",{"title":286,"path":287,"stem":288,"description":3104,"icon":71,"children":-1},"Use evlog in standalone TypeScript scripts, CLI tools, queues, cron jobs, and any TypeScript process.",1786793466697]