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