[{"data":1,"prerenderedAt":2369},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-cloudflare-workers":392,"-frameworks-cloudflare-workers-surround":2364},[4,35,159,201,289,376],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",{"title":30,"path":31,"stem":32,"icon":33},"vs Other Loggers","\u002Fgetting-started\u002Fvs-other-loggers","1.getting-started\u002F5.vs-other-loggers","i-lucide-scale",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Logging","\u002Flogging","2.logging",[40,45,50,55,60,65,70,99,127],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Catalogs","\u002Flogging\u002Fcatalogs","2.logging\u002F4.catalogs","i-lucide-book-open",{"title":66,"path":67,"stem":68,"icon":69},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F5.client-logging","i-lucide-monitor",{"title":71,"icon":72,"path":73,"stem":74,"children":75,"page":34},"AI SDK","i-simple-icons-vercel","\u002Flogging\u002Fai-sdk","2.logging\u002F6.ai-sdk",[76,79,84,89,94],{"title":41,"path":77,"stem":78,"icon":44},"\u002Flogging\u002Fai-sdk\u002Foverview","2.logging\u002F6.ai-sdk\u002F01.overview",{"title":80,"path":81,"stem":82,"icon":83},"Usage","\u002Flogging\u002Fai-sdk\u002Fusage","2.logging\u002F6.ai-sdk\u002F02.usage","i-lucide-code",{"title":85,"path":86,"stem":87,"icon":88},"Options","\u002Flogging\u002Fai-sdk\u002Foptions","2.logging\u002F6.ai-sdk\u002F03.options","i-lucide-sliders",{"title":90,"path":91,"stem":92,"icon":93},"Metadata","\u002Flogging\u002Fai-sdk\u002Fmetadata","2.logging\u002F6.ai-sdk\u002F04.metadata","i-lucide-database",{"title":95,"path":96,"stem":97,"icon":98},"Telemetry","\u002Flogging\u002Fai-sdk\u002Ftelemetry","2.logging\u002F6.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":100,"icon":101,"path":102,"stem":103,"children":104,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Flogging\u002Fbetter-auth","2.logging\u002F7.better-auth",[105,108,113,118,122],{"title":41,"path":106,"stem":107,"icon":44},"\u002Flogging\u002Fbetter-auth\u002Foverview","2.logging\u002F7.better-auth\u002F01.overview",{"title":109,"path":110,"stem":111,"icon":112},"Identify User","\u002Flogging\u002Fbetter-auth\u002Fidentify-user","2.logging\u002F7.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":114,"path":115,"stem":116,"icon":117},"Middleware","\u002Flogging\u002Fbetter-auth\u002Fmiddleware","2.logging\u002F7.better-auth\u002F03.middleware","i-lucide-shield",{"title":119,"path":120,"stem":121,"icon":69},"Client Sync","\u002Flogging\u002Fbetter-auth\u002Fclient-sync","2.logging\u002F7.better-auth\u002F04.client-sync",{"title":123,"path":124,"stem":125,"icon":126},"Performance","\u002Flogging\u002Fbetter-auth\u002Fperformance","2.logging\u002F7.better-auth\u002F05.performance","i-lucide-gauge",{"title":128,"icon":129,"path":130,"stem":131,"children":132,"page":34},"Audit Logs","i-lucide-shield-check","\u002Flogging\u002Faudit","2.logging\u002F8.audit",[133,136,141,146,151,155],{"title":41,"path":134,"stem":135,"icon":44},"\u002Flogging\u002Faudit\u002Foverview","2.logging\u002F8.audit\u002F01.overview",{"title":137,"path":138,"stem":139,"icon":140},"Schema","\u002Flogging\u002Faudit\u002Fschema","2.logging\u002F8.audit\u002F02.schema","i-lucide-file-text",{"title":142,"path":143,"stem":144,"icon":145},"Recording","\u002Flogging\u002Faudit\u002Frecording","2.logging\u002F8.audit\u002F03.recording","i-lucide-pen-line",{"title":147,"path":148,"stem":149,"icon":150},"Drains","\u002Flogging\u002Faudit\u002Fpipeline","2.logging\u002F8.audit\u002F04.pipeline","i-lucide-link",{"title":152,"path":153,"stem":154,"icon":129},"Compliance","\u002Flogging\u002Faudit\u002Fcompliance","2.logging\u002F8.audit\u002F05.compliance",{"title":156,"path":157,"stem":158,"icon":64},"Recipes","\u002Flogging\u002Faudit\u002Frecipes","2.logging\u002F8.audit\u002F06.recipes",{"title":160,"path":161,"stem":162,"children":163,"page":34},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[164,169,174,179,184,188,191,196],{"title":165,"path":166,"stem":167,"icon":168},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":170,"path":171,"stem":172,"icon":173},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":175,"path":176,"stem":177,"icon":178},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":180,"path":181,"stem":182,"icon":183},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":185,"path":186,"stem":187,"icon":129},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices",{"title":123,"path":189,"stem":190,"icon":126},"\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance",{"title":192,"path":193,"stem":194,"icon":195},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":197,"path":198,"stem":199,"icon":200},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":202,"path":203,"stem":204,"children":205,"page":34},"Frameworks","\u002Fframeworks","4.frameworks",[206,210,215,220,225,230,235,240,245,250,255,260,265,270,274,279,284],{"title":41,"path":207,"stem":208,"icon":209},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":211,"path":212,"stem":213,"icon":214},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":216,"path":217,"stem":218,"icon":219},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":221,"path":222,"stem":223,"icon":224},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":226,"path":227,"stem":228,"icon":229},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":231,"path":232,"stem":233,"icon":234},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":236,"path":237,"stem":238,"icon":239},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":241,"path":242,"stem":243,"icon":244},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":246,"path":247,"stem":248,"icon":249},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":251,"path":252,"stem":253,"icon":254},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":256,"path":257,"stem":258,"icon":259},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":261,"path":262,"stem":263,"icon":264},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":266,"path":267,"stem":268,"icon":269},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":271,"path":272,"stem":273,"icon":183},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":275,"path":276,"stem":277,"icon":278},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":280,"path":281,"stem":282,"icon":283},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":285,"path":286,"stem":287,"icon":288},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F17.custom-integration","i-lucide-puzzle",{"title":290,"path":291,"stem":292,"children":293,"page":34},"Adapters","\u002Fadapters","6.adapters",[294,297,337,352],{"title":41,"path":295,"stem":296,"icon":44},"\u002Fadapters\u002Foverview","6.adapters\u002F01.overview",{"title":298,"path":299,"stem":300,"children":301,"page":34},"Cloud destinations","\u002Fadapters\u002Fcloud","6.adapters\u002F02.cloud",[302,307,312,317,322,327,332],{"title":303,"path":304,"stem":305,"icon":306},"Axiom","\u002Fadapters\u002Fcloud\u002Faxiom","6.adapters\u002F02.cloud\u002F01.axiom","i-custom-axiom",{"title":308,"path":309,"stem":310,"icon":311},"OTLP","\u002Fadapters\u002Fcloud\u002Fotlp","6.adapters\u002F02.cloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":313,"path":314,"stem":315,"icon":316},"PostHog","\u002Fadapters\u002Fcloud\u002Fposthog","6.adapters\u002F02.cloud\u002F03.posthog","i-simple-icons-posthog",{"title":318,"path":319,"stem":320,"icon":321},"Sentry","\u002Fadapters\u002Fcloud\u002Fsentry","6.adapters\u002F02.cloud\u002F04.sentry","i-simple-icons-sentry",{"title":323,"path":324,"stem":325,"icon":326},"Better Stack","\u002Fadapters\u002Fcloud\u002Fbetter-stack","6.adapters\u002F02.cloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":328,"path":329,"stem":330,"icon":331},"Datadog","\u002Fadapters\u002Fcloud\u002Fdatadog","6.adapters\u002F02.cloud\u002F06.datadog","i-simple-icons-datadog",{"title":333,"path":334,"stem":335,"icon":336},"HyperDX","\u002Fadapters\u002Fcloud\u002Fhyperdx","6.adapters\u002F02.cloud\u002F07.hyperdx","i-custom-hyperdx",{"title":338,"path":339,"stem":340,"children":341,"page":34},"Self-hosted","\u002Fadapters\u002Fself-hosted","6.adapters\u002F03.self-hosted",[342,347],{"title":343,"path":344,"stem":345,"icon":346},"File System","\u002Fadapters\u002Fself-hosted\u002Ffs","6.adapters\u002F03.self-hosted\u002F01.fs","i-lucide-hard-drive",{"title":348,"path":349,"stem":350,"icon":351},"NuxtHub","\u002Fadapters\u002Fself-hosted\u002Fnuxthub","6.adapters\u002F03.self-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":353,"path":354,"stem":355,"children":356,"page":34},"Building blocks","\u002Fadapters\u002Fbuilding-blocks","6.adapters\u002F04.building-blocks",[357,362,367,371],{"title":358,"path":359,"stem":360,"icon":361},"Pipeline","\u002Fadapters\u002Fbuilding-blocks\u002Fpipeline","6.adapters\u002F04.building-blocks\u002F01.pipeline","i-lucide-workflow",{"title":363,"path":364,"stem":365,"icon":366},"HTTP","\u002Fadapters\u002Fbuilding-blocks\u002Fhttp","6.adapters\u002F04.building-blocks\u002F02.http","i-lucide-globe",{"title":368,"path":369,"stem":370,"icon":83},"Custom Adapters","\u002Fadapters\u002Fbuilding-blocks\u002Fcustom","6.adapters\u002F04.building-blocks\u002F03.custom",{"title":372,"path":373,"stem":374,"icon":375},"Toolkit","\u002Fadapters\u002Fbuilding-blocks\u002Ftoolkit","6.adapters\u002F04.building-blocks\u002F04.toolkit","i-lucide-blocks",{"title":377,"path":378,"stem":379,"children":380,"page":34},"Enrichers","\u002Fenrichers","7.enrichers",[381,384,388],{"title":41,"path":382,"stem":383,"icon":28},"\u002Fenrichers\u002Foverview","7.enrichers\u002F1.overview",{"title":385,"path":386,"stem":387,"icon":288},"Built-in","\u002Fenrichers\u002Fbuilt-in","7.enrichers\u002F2.built-in",{"title":389,"path":390,"stem":391,"icon":83},"Custom","\u002Fenrichers\u002Fcustom","7.enrichers\u002F3.custom",{"id":393,"title":266,"body":394,"description":2357,"extension":2358,"links":2359,"meta":2360,"navigation":2361,"path":267,"seo":2362,"stem":268,"__hash__":2363},"docs\u002F4.frameworks\u002F12.cloudflare-workers.md",{"type":395,"value":396,"toc":2344},"minimark",[397,410,459,463,468,539,543,796,827,844,873,876,879,1313,1379,1383,1390,1933,1936,1947,1951,1957,2244,2252,2256,2259,2288,2292,2306,2310,2340],[398,399,400,401,405,406,409],"p",{},"The ",[402,403,404],"code",{},"evlog\u002Fworkers"," adapter provides factory functions for creating request-scoped loggers with Cloudflare-specific context. Unlike framework integrations, Workers require manual ",[402,407,408],{},"log.emit()"," calls since there is no middleware lifecycle to hook into.",[411,412,415,418,445],"prompt",{":actions":413,"description":414,"icon":269},"[\"copy\",\"cursor\",\"windsurf\"]","Set up evlog in my Cloudflare Worker",[398,416,417],{},"Set up evlog in my Cloudflare Worker.",[419,420,421,425,428,431,439,442],"ul",{},[422,423,424],"li",{},"Install evlog: pnpm add evlog",[422,426,427],{},"Import initWorkersLogger and defineWorkerFetch from 'evlog\u002Fworkers'",[422,429,430],{},"Call initWorkersLogger({ env: { service: 'my-worker' } }) at the top level",[422,432,433,434,438],{},"In the fetch handler, use ",[435,436,437],"strong",{},"defineWorkerFetch"," (recommended) or createWorkersLogger(request, { executionCtx: ctx })",[422,440,441],{},"Use log.set() to accumulate context throughout the request",[422,443,444],{},"Call log.emit() manually before returning the response (no middleware lifecycle)",[398,446,447,448,454,455],{},"Docs: ",[449,450,451],"a",{"href":451,"rel":452},"https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fcloudflare-workers",[453],"nofollow","\nAdapters: ",[449,456,457],{"href":457,"rel":458},"https:\u002F\u002Fwww.evlog.dev\u002Fadapters",[453],[460,461,20],"h2",{"id":462},"quick-start",[464,465,467],"h3",{"id":466},"_1-install","1. Install",[469,470,471,496,510,524],"code-group",{},[472,473,479],"pre",{"className":474,"code":475,"filename":476,"language":477,"meta":478,"style":478},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog\n","pnpm","bash","",[402,480,481],{"__ignoreMap":478},[482,483,486,489,493],"span",{"class":484,"line":485},"line",1,[482,487,476],{"class":488},"sBMFI",[482,490,492],{"class":491},"sfazB"," add",[482,494,495],{"class":491}," evlog\n",[472,497,500],{"className":474,"code":498,"filename":499,"language":477,"meta":478,"style":478},"bun add evlog\n","bun",[402,501,502],{"__ignoreMap":478},[482,503,504,506,508],{"class":484,"line":485},[482,505,499],{"class":488},[482,507,492],{"class":491},[482,509,495],{"class":491},[472,511,514],{"className":474,"code":512,"filename":513,"language":477,"meta":478,"style":478},"yarn add evlog\n","yarn",[402,515,516],{"__ignoreMap":478},[482,517,518,520,522],{"class":484,"line":485},[482,519,513],{"class":488},[482,521,492],{"class":491},[482,523,495],{"class":491},[472,525,528],{"className":474,"code":526,"filename":527,"language":477,"meta":478,"style":478},"npm install evlog\n","npm",[402,529,530],{"__ignoreMap":478},[482,531,532,534,537],{"class":484,"line":485},[482,533,527],{"class":488},[482,535,536],{"class":491}," install",[482,538,495],{"class":491},[464,540,542],{"id":541},"_2-initialize-and-create-request-loggers","2. Initialize and create request loggers",[472,544,549],{"className":545,"code":546,"filename":547,"language":548,"meta":478,"style":478},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineWorkerFetch, initWorkersLogger } from 'evlog\u002Fworkers'\n\ninitWorkersLogger({\n  env: { service: 'my-worker' },\n})\n\nexport default defineWorkerFetch(async (request, _env, _ctx, log) => {\n  log.set({ action: 'handle_request' })\n\n  \u002F\u002F ... your handler logic\n\n  log.emit()\n  return Response.json({ ok: true })\n})\n","src\u002Fworker.ts","typescript",[402,550,551,585,592,605,633,642,647,695,728,733,740,745,758,789],{"__ignoreMap":478},[482,552,553,557,561,565,568,571,574,577,580,582],{"class":484,"line":485},[482,554,556],{"class":555},"s7zQu","import",[482,558,560],{"class":559},"sMK4o"," {",[482,562,564],{"class":563},"sTEyZ"," defineWorkerFetch",[482,566,567],{"class":559},",",[482,569,570],{"class":563}," initWorkersLogger",[482,572,573],{"class":559}," }",[482,575,576],{"class":555}," from",[482,578,579],{"class":559}," '",[482,581,404],{"class":491},[482,583,584],{"class":559},"'\n",[482,586,588],{"class":484,"line":587},2,[482,589,591],{"emptyLinePlaceholder":590},true,"\n",[482,593,595,599,602],{"class":484,"line":594},3,[482,596,598],{"class":597},"s2Zo4","initWorkersLogger",[482,600,601],{"class":563},"(",[482,603,604],{"class":559},"{\n",[482,606,608,612,615,617,620,622,624,627,630],{"class":484,"line":607},4,[482,609,611],{"class":610},"swJcz","  env",[482,613,614],{"class":559},":",[482,616,560],{"class":559},[482,618,619],{"class":610}," service",[482,621,614],{"class":559},[482,623,579],{"class":559},[482,625,626],{"class":491},"my-worker",[482,628,629],{"class":559},"'",[482,631,632],{"class":559}," },\n",[482,634,636,639],{"class":484,"line":635},5,[482,637,638],{"class":559},"}",[482,640,641],{"class":563},")\n",[482,643,645],{"class":484,"line":644},6,[482,646,591],{"emptyLinePlaceholder":590},[482,648,650,653,656,658,660,664,667,671,673,676,678,681,683,686,689,692],{"class":484,"line":649},7,[482,651,652],{"class":555},"export",[482,654,655],{"class":555}," default",[482,657,564],{"class":597},[482,659,601],{"class":563},[482,661,663],{"class":662},"spNyl","async",[482,665,666],{"class":559}," (",[482,668,670],{"class":669},"sHdIc","request",[482,672,567],{"class":559},[482,674,675],{"class":669}," _env",[482,677,567],{"class":559},[482,679,680],{"class":669}," _ctx",[482,682,567],{"class":559},[482,684,685],{"class":669}," log",[482,687,688],{"class":559},")",[482,690,691],{"class":662}," =>",[482,693,694],{"class":559}," {\n",[482,696,698,701,704,707,709,712,715,717,719,722,724,726],{"class":484,"line":697},8,[482,699,700],{"class":563},"  log",[482,702,703],{"class":559},".",[482,705,706],{"class":597},"set",[482,708,601],{"class":610},[482,710,711],{"class":559},"{",[482,713,714],{"class":610}," action",[482,716,614],{"class":559},[482,718,579],{"class":559},[482,720,721],{"class":491},"handle_request",[482,723,629],{"class":559},[482,725,573],{"class":559},[482,727,641],{"class":610},[482,729,731],{"class":484,"line":730},9,[482,732,591],{"emptyLinePlaceholder":590},[482,734,736],{"class":484,"line":735},10,[482,737,739],{"class":738},"sHwdD","  \u002F\u002F ... your handler logic\n",[482,741,743],{"class":484,"line":742},11,[482,744,591],{"emptyLinePlaceholder":590},[482,746,748,750,752,755],{"class":484,"line":747},12,[482,749,700],{"class":563},[482,751,703],{"class":559},[482,753,754],{"class":597},"emit",[482,756,757],{"class":610},"()\n",[482,759,761,764,767,769,772,774,776,779,781,785,787],{"class":484,"line":760},13,[482,762,763],{"class":555},"  return",[482,765,766],{"class":563}," Response",[482,768,703],{"class":559},[482,770,771],{"class":597},"json",[482,773,601],{"class":610},[482,775,711],{"class":559},[482,777,778],{"class":610}," ok",[482,780,614],{"class":559},[482,782,784],{"class":783},"sfNiH"," true",[482,786,573],{"class":559},[482,788,641],{"class":610},[482,790,792,794],{"class":484,"line":791},14,[482,793,638],{"class":559},[482,795,641],{"class":563},[398,797,798,800,801,804,805,808,809,814,815,818,819,822,823,826],{},[402,799,437],{}," passes ",[402,802,803],{},"ExecutionContext"," into ",[402,806,807],{},"createWorkersLogger"," for you, so async ",[435,810,811],{},[402,812,813],{},"drain"," calls (PostHog, Axiom, …) stay alive via ",[402,816,817],{},"waitUntil"," after the response is returned. Use raw ",[402,820,821],{},"export default { fetch }"," + ",[402,824,825],{},"createWorkersLogger(request, { executionCtx: ctx })"," only if you prefer not to use the wrapper.",[398,828,829,831,832,835,836,839,840,843],{},[402,830,807],{}," still auto-extracts ",[402,833,834],{},"method",", ",[402,837,838],{},"path",", and ",[402,841,842],{},"cf-ray"," from the request.",[845,846,848,849,851,852,856,857,859,860,862,863,866,867,870,871,703],"callout",{"color":847,"icon":13},"info","You must call ",[402,850,408],{}," manually before returning a response. Workers don't have a request lifecycle hook to auto-emit. With ",[435,853,854],{},[402,855,437],{},", async ",[402,858,813],{}," work is tied to ",[402,861,817],{}," automatically; with a raw ",[402,864,865],{},"{ fetch }"," handler, pass ",[402,868,869],{},"{ executionCtx: ctx }"," to ",[402,872,807],{},[460,874,51],{"id":875},"wide-events",[398,877,878],{},"Build up context progressively, then emit at the end:",[472,880,882],{"className":545,"code":881,"filename":547,"language":548,"meta":478,"style":478},"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",[402,883,884,906,910,918,938,944,948,983,1011,1015,1043,1047,1120,1170,1174,1228,1265,1270,1281,1306],{"__ignoreMap":478},[482,885,886,888,890,892,894,896,898,900,902,904],{"class":484,"line":485},[482,887,556],{"class":555},[482,889,560],{"class":559},[482,891,564],{"class":563},[482,893,567],{"class":559},[482,895,570],{"class":563},[482,897,573],{"class":559},[482,899,576],{"class":555},[482,901,579],{"class":559},[482,903,404],{"class":491},[482,905,584],{"class":559},[482,907,908],{"class":484,"line":587},[482,909,591],{"emptyLinePlaceholder":590},[482,911,912,914,916],{"class":484,"line":594},[482,913,598],{"class":597},[482,915,601],{"class":563},[482,917,604],{"class":559},[482,919,920,922,924,926,928,930,932,934,936],{"class":484,"line":607},[482,921,611],{"class":610},[482,923,614],{"class":559},[482,925,560],{"class":559},[482,927,619],{"class":610},[482,929,614],{"class":559},[482,931,579],{"class":559},[482,933,626],{"class":491},[482,935,629],{"class":559},[482,937,632],{"class":559},[482,939,940,942],{"class":484,"line":635},[482,941,638],{"class":559},[482,943,641],{"class":563},[482,945,946],{"class":484,"line":644},[482,947,591],{"emptyLinePlaceholder":590},[482,949,950,952,954,956,958,960,962,964,966,969,971,973,975,977,979,981],{"class":484,"line":649},[482,951,652],{"class":555},[482,953,655],{"class":555},[482,955,564],{"class":597},[482,957,601],{"class":563},[482,959,663],{"class":662},[482,961,666],{"class":559},[482,963,670],{"class":669},[482,965,567],{"class":559},[482,967,968],{"class":669}," env",[482,970,567],{"class":559},[482,972,680],{"class":669},[482,974,567],{"class":559},[482,976,685],{"class":669},[482,978,688],{"class":559},[482,980,691],{"class":662},[482,982,694],{"class":559},[482,984,985,988,991,994,997,1000,1002,1004,1006,1009],{"class":484,"line":697},[482,986,987],{"class":662},"  const",[482,989,990],{"class":563}," url",[482,992,993],{"class":559}," =",[482,995,996],{"class":559}," new",[482,998,999],{"class":597}," URL",[482,1001,601],{"class":610},[482,1003,670],{"class":563},[482,1005,703],{"class":559},[482,1007,1008],{"class":563},"url",[482,1010,641],{"class":610},[482,1012,1013],{"class":484,"line":730},[482,1014,591],{"emptyLinePlaceholder":590},[482,1016,1017,1019,1021,1023,1025,1027,1030,1032,1034,1036,1039,1041],{"class":484,"line":735},[482,1018,700],{"class":563},[482,1020,703],{"class":559},[482,1022,706],{"class":597},[482,1024,601],{"class":610},[482,1026,711],{"class":559},[482,1028,1029],{"class":610}," route",[482,1031,614],{"class":559},[482,1033,990],{"class":563},[482,1035,703],{"class":559},[482,1037,1038],{"class":563},"pathname",[482,1040,573],{"class":559},[482,1042,641],{"class":610},[482,1044,1045],{"class":484,"line":742},[482,1046,591],{"emptyLinePlaceholder":590},[482,1048,1049,1051,1054,1056,1059,1061,1063,1066,1068,1071,1073,1075,1078,1080,1082,1084,1087,1089,1091,1093,1096,1098,1101,1103,1105,1108,1110,1113,1115,1118],{"class":484,"line":747},[482,1050,987],{"class":662},[482,1052,1053],{"class":563}," user",[482,1055,993],{"class":559},[482,1057,1058],{"class":555}," await",[482,1060,968],{"class":563},[482,1062,703],{"class":559},[482,1064,1065],{"class":563},"DB",[482,1067,703],{"class":559},[482,1069,1070],{"class":597},"prepare",[482,1072,601],{"class":610},[482,1074,629],{"class":559},[482,1076,1077],{"class":491},"SELECT * FROM users WHERE id = ?",[482,1079,629],{"class":559},[482,1081,688],{"class":610},[482,1083,703],{"class":559},[482,1085,1086],{"class":597},"bind",[482,1088,601],{"class":610},[482,1090,1008],{"class":563},[482,1092,703],{"class":559},[482,1094,1095],{"class":563},"searchParams",[482,1097,703],{"class":559},[482,1099,1100],{"class":597},"get",[482,1102,601],{"class":610},[482,1104,629],{"class":559},[482,1106,1107],{"class":491},"userId",[482,1109,629],{"class":559},[482,1111,1112],{"class":610},"))",[482,1114,703],{"class":559},[482,1116,1117],{"class":597},"first",[482,1119,757],{"class":610},[482,1121,1122,1124,1126,1128,1130,1132,1134,1136,1138,1141,1143,1145,1147,1150,1152,1155,1157,1159,1161,1164,1166,1168],{"class":484,"line":760},[482,1123,700],{"class":563},[482,1125,703],{"class":559},[482,1127,706],{"class":597},[482,1129,601],{"class":610},[482,1131,711],{"class":559},[482,1133,1053],{"class":610},[482,1135,614],{"class":559},[482,1137,560],{"class":559},[482,1139,1140],{"class":610}," id",[482,1142,614],{"class":559},[482,1144,1053],{"class":563},[482,1146,703],{"class":559},[482,1148,1149],{"class":563},"id",[482,1151,567],{"class":559},[482,1153,1154],{"class":610}," plan",[482,1156,614],{"class":559},[482,1158,1053],{"class":563},[482,1160,703],{"class":559},[482,1162,1163],{"class":563},"plan",[482,1165,573],{"class":559},[482,1167,573],{"class":559},[482,1169,641],{"class":610},[482,1171,1172],{"class":484,"line":791},[482,1173,591],{"emptyLinePlaceholder":590},[482,1175,1177,1179,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1203,1205,1207,1209,1211,1213,1216,1218,1220,1222,1224,1226],{"class":484,"line":1176},15,[482,1178,987],{"class":662},[482,1180,1181],{"class":563}," orders",[482,1183,993],{"class":559},[482,1185,1058],{"class":555},[482,1187,968],{"class":563},[482,1189,703],{"class":559},[482,1191,1065],{"class":563},[482,1193,703],{"class":559},[482,1195,1070],{"class":597},[482,1197,601],{"class":610},[482,1199,629],{"class":559},[482,1201,1202],{"class":491},"SELECT COUNT(*) as count FROM orders WHERE user_id = ?",[482,1204,629],{"class":559},[482,1206,688],{"class":610},[482,1208,703],{"class":559},[482,1210,1086],{"class":597},[482,1212,601],{"class":610},[482,1214,1215],{"class":563},"user",[482,1217,703],{"class":559},[482,1219,1149],{"class":563},[482,1221,688],{"class":610},[482,1223,703],{"class":559},[482,1225,1117],{"class":597},[482,1227,757],{"class":610},[482,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247,1250,1252,1254,1256,1259,1261,1263],{"class":484,"line":1230},16,[482,1232,700],{"class":563},[482,1234,703],{"class":559},[482,1236,706],{"class":597},[482,1238,601],{"class":610},[482,1240,711],{"class":559},[482,1242,1181],{"class":610},[482,1244,614],{"class":559},[482,1246,560],{"class":559},[482,1248,1249],{"class":610}," count",[482,1251,614],{"class":559},[482,1253,1181],{"class":563},[482,1255,703],{"class":559},[482,1257,1258],{"class":563},"count",[482,1260,573],{"class":559},[482,1262,573],{"class":559},[482,1264,641],{"class":610},[482,1266,1268],{"class":484,"line":1267},17,[482,1269,591],{"emptyLinePlaceholder":590},[482,1271,1273,1275,1277,1279],{"class":484,"line":1272},18,[482,1274,700],{"class":563},[482,1276,703],{"class":559},[482,1278,754],{"class":597},[482,1280,757],{"class":610},[482,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304],{"class":484,"line":1283},19,[482,1285,763],{"class":555},[482,1287,766],{"class":563},[482,1289,703],{"class":559},[482,1291,771],{"class":597},[482,1293,601],{"class":610},[482,1295,711],{"class":559},[482,1297,1053],{"class":563},[482,1299,567],{"class":559},[482,1301,1181],{"class":563},[482,1303,573],{"class":559},[482,1305,641],{"class":610},[482,1307,1309,1311],{"class":484,"line":1308},20,[482,1310,638],{"class":559},[482,1312,641],{"class":563},[472,1314,1317],{"className":474,"code":1315,"filename":1316,"language":477,"meta":478,"style":478},"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",[402,1318,1319,1330,1345,1358,1368],{"__ignoreMap":478},[482,1320,1321,1324,1327],{"class":484,"line":485},[482,1322,1323],{"class":488},"14:58:15",[482,1325,1326],{"class":491}," INFO",[482,1328,1329],{"class":563}," [my-worker] GET \u002Fapi\u002Fusers 200 in 12ms\n",[482,1331,1332,1335,1338,1341],{"class":484,"line":587},[482,1333,1334],{"class":488},"  ├─",[482,1336,1337],{"class":491}," orders:",[482,1339,1340],{"class":491}," count=",[482,1342,1344],{"class":1343},"sbssI","5\n",[482,1346,1347,1349,1352,1355],{"class":484,"line":594},[482,1348,1334],{"class":488},[482,1350,1351],{"class":491}," user:",[482,1353,1354],{"class":491}," id=usr_123",[482,1356,1357],{"class":491}," plan=pro\n",[482,1359,1360,1362,1365],{"class":484,"line":607},[482,1361,1334],{"class":488},[482,1363,1364],{"class":491}," route:",[482,1366,1367],{"class":491}," \u002Fapi\u002Fusers\n",[482,1369,1370,1373,1376],{"class":484,"line":635},[482,1371,1372],{"class":488},"  └─",[482,1374,1375],{"class":491}," requestId:",[482,1377,1378],{"class":491}," 4a8ff3a8-...\n",[460,1380,1382],{"id":1381},"error-handling","Error Handling",[398,1384,1385,1386,1389],{},"Use ",[402,1387,1388],{},"createError"," for structured errors and handle them with try\u002Fcatch:",[472,1391,1393],{"className":545,"code":1392,"filename":547,"language":548,"meta":478,"style":478},"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",[402,1394,1395,1420,1442,1446,1476,1480,1514,1521,1542,1580,1584,1609,1620,1633,1649,1665,1681,1688,1693,1697,1707,1734,1752,1796,1807,1812,1830,1845,1862,1879,1896,1920,1926],{"__ignoreMap":478},[482,1396,1397,1399,1401,1404,1406,1409,1411,1413,1415,1418],{"class":484,"line":485},[482,1398,556],{"class":555},[482,1400,560],{"class":559},[482,1402,1403],{"class":563}," createError",[482,1405,567],{"class":559},[482,1407,1408],{"class":563}," parseError",[482,1410,573],{"class":559},[482,1412,576],{"class":555},[482,1414,579],{"class":559},[482,1416,1417],{"class":491},"evlog",[482,1419,584],{"class":559},[482,1421,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440],{"class":484,"line":587},[482,1423,556],{"class":555},[482,1425,560],{"class":559},[482,1427,564],{"class":563},[482,1429,567],{"class":559},[482,1431,570],{"class":563},[482,1433,573],{"class":559},[482,1435,576],{"class":555},[482,1437,579],{"class":559},[482,1439,404],{"class":491},[482,1441,584],{"class":559},[482,1443,1444],{"class":484,"line":594},[482,1445,591],{"emptyLinePlaceholder":590},[482,1447,1448,1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474],{"class":484,"line":607},[482,1449,598],{"class":597},[482,1451,601],{"class":563},[482,1453,711],{"class":559},[482,1455,968],{"class":610},[482,1457,614],{"class":559},[482,1459,560],{"class":559},[482,1461,619],{"class":610},[482,1463,614],{"class":559},[482,1465,579],{"class":559},[482,1467,626],{"class":491},[482,1469,629],{"class":559},[482,1471,573],{"class":559},[482,1473,573],{"class":559},[482,1475,641],{"class":563},[482,1477,1478],{"class":484,"line":635},[482,1479,591],{"emptyLinePlaceholder":590},[482,1481,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512],{"class":484,"line":644},[482,1483,652],{"class":555},[482,1485,655],{"class":555},[482,1487,564],{"class":597},[482,1489,601],{"class":563},[482,1491,663],{"class":662},[482,1493,666],{"class":559},[482,1495,670],{"class":669},[482,1497,567],{"class":559},[482,1499,968],{"class":669},[482,1501,567],{"class":559},[482,1503,680],{"class":669},[482,1505,567],{"class":559},[482,1507,685],{"class":669},[482,1509,688],{"class":559},[482,1511,691],{"class":662},[482,1513,694],{"class":559},[482,1515,1516,1519],{"class":484,"line":649},[482,1517,1518],{"class":555},"  try",[482,1520,694],{"class":559},[482,1522,1523,1526,1529,1531,1533,1536,1538,1540],{"class":484,"line":697},[482,1524,1525],{"class":662},"    const",[482,1527,1528],{"class":563}," body",[482,1530,993],{"class":559},[482,1532,1058],{"class":555},[482,1534,1535],{"class":563}," request",[482,1537,703],{"class":559},[482,1539,771],{"class":597},[482,1541,757],{"class":610},[482,1543,1544,1547,1549,1551,1553,1555,1558,1560,1562,1565,1567,1569,1571,1574,1576,1578],{"class":484,"line":730},[482,1545,1546],{"class":563},"    log",[482,1548,703],{"class":559},[482,1550,706],{"class":597},[482,1552,601],{"class":610},[482,1554,711],{"class":559},[482,1556,1557],{"class":610}," payment",[482,1559,614],{"class":559},[482,1561,560],{"class":559},[482,1563,1564],{"class":610}," amount",[482,1566,614],{"class":559},[482,1568,1528],{"class":563},[482,1570,703],{"class":559},[482,1572,1573],{"class":563},"amount",[482,1575,573],{"class":559},[482,1577,573],{"class":559},[482,1579,641],{"class":610},[482,1581,1582],{"class":484,"line":735},[482,1583,591],{"emptyLinePlaceholder":590},[482,1585,1586,1589,1591,1594,1596,1598,1601,1604,1607],{"class":484,"line":742},[482,1587,1588],{"class":555},"    if",[482,1590,666],{"class":610},[482,1592,1593],{"class":563},"body",[482,1595,703],{"class":559},[482,1597,1573],{"class":563},[482,1599,1600],{"class":559}," \u003C=",[482,1602,1603],{"class":1343}," 0",[482,1605,1606],{"class":610},") ",[482,1608,604],{"class":559},[482,1610,1611,1614,1616,1618],{"class":484,"line":747},[482,1612,1613],{"class":555},"      throw",[482,1615,1403],{"class":597},[482,1617,601],{"class":610},[482,1619,604],{"class":559},[482,1621,1622,1625,1627,1630],{"class":484,"line":760},[482,1623,1624],{"class":610},"        status",[482,1626,614],{"class":559},[482,1628,1629],{"class":1343}," 400",[482,1631,1632],{"class":559},",\n",[482,1634,1635,1638,1640,1642,1645,1647],{"class":484,"line":791},[482,1636,1637],{"class":610},"        message",[482,1639,614],{"class":559},[482,1641,579],{"class":559},[482,1643,1644],{"class":491},"Invalid payment amount",[482,1646,629],{"class":559},[482,1648,1632],{"class":559},[482,1650,1651,1654,1656,1658,1661,1663],{"class":484,"line":1176},[482,1652,1653],{"class":610},"        why",[482,1655,614],{"class":559},[482,1657,579],{"class":559},[482,1659,1660],{"class":491},"The amount must be a positive number",[482,1662,629],{"class":559},[482,1664,1632],{"class":559},[482,1666,1667,1670,1672,1674,1677,1679],{"class":484,"line":1230},[482,1668,1669],{"class":610},"        fix",[482,1671,614],{"class":559},[482,1673,579],{"class":559},[482,1675,1676],{"class":491},"Pass a positive integer in cents",[482,1678,629],{"class":559},[482,1680,1632],{"class":559},[482,1682,1683,1686],{"class":484,"line":1267},[482,1684,1685],{"class":559},"      }",[482,1687,641],{"class":610},[482,1689,1690],{"class":484,"line":1272},[482,1691,1692],{"class":559},"    }\n",[482,1694,1695],{"class":484,"line":1283},[482,1696,591],{"emptyLinePlaceholder":590},[482,1698,1699,1701,1703,1705],{"class":484,"line":1308},[482,1700,1546],{"class":563},[482,1702,703],{"class":559},[482,1704,754],{"class":597},[482,1706,757],{"class":610},[482,1708,1710,1713,1715,1717,1719,1721,1723,1726,1728,1730,1732],{"class":484,"line":1709},21,[482,1711,1712],{"class":555},"    return",[482,1714,766],{"class":563},[482,1716,703],{"class":559},[482,1718,771],{"class":597},[482,1720,601],{"class":610},[482,1722,711],{"class":559},[482,1724,1725],{"class":610}," success",[482,1727,614],{"class":559},[482,1729,784],{"class":783},[482,1731,573],{"class":559},[482,1733,641],{"class":610},[482,1735,1737,1740,1743,1745,1748,1750],{"class":484,"line":1736},22,[482,1738,1739],{"class":559},"  }",[482,1741,1742],{"class":555}," catch",[482,1744,666],{"class":610},[482,1746,1747],{"class":563},"error",[482,1749,1606],{"class":610},[482,1751,604],{"class":559},[482,1753,1755,1757,1759,1761,1763,1765,1768,1771,1774,1777,1780,1782,1784,1786,1789,1791,1793],{"class":484,"line":1754},23,[482,1756,1546],{"class":563},[482,1758,703],{"class":559},[482,1760,1747],{"class":597},[482,1762,601],{"class":610},[482,1764,1747],{"class":563},[482,1766,1767],{"class":559}," instanceof",[482,1769,1770],{"class":488}," Error",[482,1772,1773],{"class":559}," ?",[482,1775,1776],{"class":563}," error",[482,1778,1779],{"class":559}," :",[482,1781,996],{"class":559},[482,1783,1770],{"class":597},[482,1785,601],{"class":610},[482,1787,1788],{"class":597},"String",[482,1790,601],{"class":610},[482,1792,1747],{"class":563},[482,1794,1795],{"class":610},")))\n",[482,1797,1799,1801,1803,1805],{"class":484,"line":1798},24,[482,1800,1546],{"class":563},[482,1802,703],{"class":559},[482,1804,754],{"class":597},[482,1806,757],{"class":610},[482,1808,1810],{"class":484,"line":1809},25,[482,1811,591],{"emptyLinePlaceholder":590},[482,1813,1815,1817,1820,1822,1824,1826,1828],{"class":484,"line":1814},26,[482,1816,1525],{"class":662},[482,1818,1819],{"class":563}," parsed",[482,1821,993],{"class":559},[482,1823,1408],{"class":597},[482,1825,601],{"class":610},[482,1827,1747],{"class":563},[482,1829,641],{"class":610},[482,1831,1833,1835,1837,1839,1841,1843],{"class":484,"line":1832},27,[482,1834,1712],{"class":555},[482,1836,766],{"class":563},[482,1838,703],{"class":559},[482,1840,771],{"class":597},[482,1842,601],{"class":610},[482,1844,604],{"class":559},[482,1846,1848,1851,1853,1855,1857,1860],{"class":484,"line":1847},28,[482,1849,1850],{"class":610},"      message",[482,1852,614],{"class":559},[482,1854,1819],{"class":563},[482,1856,703],{"class":559},[482,1858,1859],{"class":563},"message",[482,1861,1632],{"class":559},[482,1863,1865,1868,1870,1872,1874,1877],{"class":484,"line":1864},29,[482,1866,1867],{"class":610},"      why",[482,1869,614],{"class":559},[482,1871,1819],{"class":563},[482,1873,703],{"class":559},[482,1875,1876],{"class":563},"why",[482,1878,1632],{"class":559},[482,1880,1882,1885,1887,1889,1891,1894],{"class":484,"line":1881},30,[482,1883,1884],{"class":610},"      fix",[482,1886,614],{"class":559},[482,1888,1819],{"class":563},[482,1890,703],{"class":559},[482,1892,1893],{"class":563},"fix",[482,1895,1632],{"class":559},[482,1897,1899,1902,1904,1907,1909,1911,1913,1916,1918],{"class":484,"line":1898},31,[482,1900,1901],{"class":559},"    },",[482,1903,560],{"class":559},[482,1905,1906],{"class":610}," status",[482,1908,614],{"class":559},[482,1910,1819],{"class":563},[482,1912,703],{"class":559},[482,1914,1915],{"class":563},"status",[482,1917,573],{"class":559},[482,1919,641],{"class":610},[482,1921,1923],{"class":484,"line":1922},32,[482,1924,1925],{"class":559},"  }\n",[482,1927,1929,1931],{"class":484,"line":1928},33,[482,1930,638],{"class":559},[482,1932,641],{"class":563},[460,1934,170],{"id":1935},"configuration",[398,1937,1938,1939,1942,1943,1946],{},"See the ",[449,1940,1941],{"href":171},"Configuration reference"," for all available options (",[402,1944,1945],{},"initLogger",", middleware options, sampling, silent mode, etc.).",[460,1948,1950],{"id":1949},"drain-enrichers","Drain & Enrichers",[398,1952,1953,1954,1956],{},"Configure drain and enrichers via ",[402,1955,598],{}," options:",[472,1958,1960],{"className":545,"code":1959,"filename":547,"language":548,"meta":478,"style":478},"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",[402,1961,1962,1985,2005,2025,2045,2067,2071,2097,2126,2132,2152,2165,2169,2177,2197,2204,2222,2233,2238],{"__ignoreMap":478},[482,1963,1964,1966,1968,1970,1972,1975,1977,1979,1981,1983],{"class":484,"line":485},[482,1965,556],{"class":555},[482,1967,560],{"class":559},[482,1969,570],{"class":563},[482,1971,567],{"class":559},[482,1973,1974],{"class":563}," createWorkersLogger",[482,1976,573],{"class":559},[482,1978,576],{"class":555},[482,1980,579],{"class":559},[482,1982,404],{"class":491},[482,1984,584],{"class":559},[482,1986,1987,1989,1991,1994,1996,1998,2000,2003],{"class":484,"line":587},[482,1988,556],{"class":555},[482,1990,560],{"class":559},[482,1992,1993],{"class":563}," createAxiomDrain",[482,1995,573],{"class":559},[482,1997,576],{"class":555},[482,1999,579],{"class":559},[482,2001,2002],{"class":491},"evlog\u002Faxiom",[482,2004,584],{"class":559},[482,2006,2007,2009,2011,2014,2016,2018,2020,2023],{"class":484,"line":594},[482,2008,556],{"class":555},[482,2010,560],{"class":559},[482,2012,2013],{"class":563}," createUserAgentEnricher",[482,2015,573],{"class":559},[482,2017,576],{"class":555},[482,2019,579],{"class":559},[482,2021,2022],{"class":491},"evlog\u002Fenrichers",[482,2024,584],{"class":559},[482,2026,2027,2029,2031,2034,2036,2038,2040,2043],{"class":484,"line":607},[482,2028,556],{"class":555},[482,2030,560],{"class":559},[482,2032,2033],{"class":563}," createDrainPipeline",[482,2035,573],{"class":559},[482,2037,576],{"class":555},[482,2039,579],{"class":559},[482,2041,2042],{"class":491},"evlog\u002Fpipeline",[482,2044,584],{"class":559},[482,2046,2047,2049,2052,2054,2057,2059,2061,2063,2065],{"class":484,"line":635},[482,2048,556],{"class":555},[482,2050,2051],{"class":555}," type",[482,2053,560],{"class":559},[482,2055,2056],{"class":563}," DrainContext",[482,2058,573],{"class":559},[482,2060,576],{"class":555},[482,2062,579],{"class":559},[482,2064,1417],{"class":491},[482,2066,584],{"class":559},[482,2068,2069],{"class":484,"line":644},[482,2070,591],{"emptyLinePlaceholder":590},[482,2072,2073,2076,2079,2082,2084,2087,2090,2093,2095],{"class":484,"line":649},[482,2074,2075],{"class":662},"const",[482,2077,2078],{"class":563}," pipeline ",[482,2080,2081],{"class":559},"=",[482,2083,2033],{"class":597},[482,2085,2086],{"class":559},"\u003C",[482,2088,2089],{"class":488},"DrainContext",[482,2091,2092],{"class":559},">",[482,2094,601],{"class":563},[482,2096,604],{"class":559},[482,2098,2099,2102,2104,2106,2109,2111,2114,2116,2119,2121,2124],{"class":484,"line":697},[482,2100,2101],{"class":610},"  batch",[482,2103,614],{"class":559},[482,2105,560],{"class":559},[482,2107,2108],{"class":610}," size",[482,2110,614],{"class":559},[482,2112,2113],{"class":1343}," 50",[482,2115,567],{"class":559},[482,2117,2118],{"class":610}," intervalMs",[482,2120,614],{"class":559},[482,2122,2123],{"class":1343}," 5000",[482,2125,632],{"class":559},[482,2127,2128,2130],{"class":484,"line":730},[482,2129,638],{"class":559},[482,2131,641],{"class":563},[482,2133,2134,2136,2139,2141,2144,2146,2149],{"class":484,"line":735},[482,2135,2075],{"class":662},[482,2137,2138],{"class":563}," drain ",[482,2140,2081],{"class":559},[482,2142,2143],{"class":597}," pipeline",[482,2145,601],{"class":563},[482,2147,2148],{"class":597},"createAxiomDrain",[482,2150,2151],{"class":563},"())\n",[482,2153,2154,2156,2159,2161,2163],{"class":484,"line":742},[482,2155,2075],{"class":662},[482,2157,2158],{"class":563}," userAgent ",[482,2160,2081],{"class":559},[482,2162,2013],{"class":597},[482,2164,757],{"class":563},[482,2166,2167],{"class":484,"line":747},[482,2168,591],{"emptyLinePlaceholder":590},[482,2170,2171,2173,2175],{"class":484,"line":760},[482,2172,598],{"class":597},[482,2174,601],{"class":563},[482,2176,604],{"class":559},[482,2178,2179,2181,2183,2185,2187,2189,2191,2193,2195],{"class":484,"line":791},[482,2180,611],{"class":610},[482,2182,614],{"class":559},[482,2184,560],{"class":559},[482,2186,619],{"class":610},[482,2188,614],{"class":559},[482,2190,579],{"class":559},[482,2192,626],{"class":491},[482,2194,629],{"class":559},[482,2196,632],{"class":559},[482,2198,2199,2202],{"class":484,"line":1176},[482,2200,2201],{"class":563},"  drain",[482,2203,1632],{"class":559},[482,2205,2206,2209,2211,2213,2216,2218,2220],{"class":484,"line":1230},[482,2207,2208],{"class":597},"  enrich",[482,2210,614],{"class":559},[482,2212,666],{"class":559},[482,2214,2215],{"class":669},"ctx",[482,2217,688],{"class":559},[482,2219,691],{"class":662},[482,2221,694],{"class":559},[482,2223,2224,2227,2229,2231],{"class":484,"line":1267},[482,2225,2226],{"class":597},"    userAgent",[482,2228,601],{"class":610},[482,2230,2215],{"class":563},[482,2232,641],{"class":610},[482,2234,2235],{"class":484,"line":1272},[482,2236,2237],{"class":559},"  },\n",[482,2239,2240,2242],{"class":484,"line":1283},[482,2241,638],{"class":559},[482,2243,641],{"class":563},[845,2245,1938,2246,2248,2249,2251],{"color":847,"icon":13},[449,2247,290],{"href":295}," and ",[449,2250,377],{"href":382}," docs for all available drain adapters and enrichers.",[460,2253,2255],{"id":2254},"wrangler-configuration","Wrangler Configuration",[398,2257,2258],{},"Disable Cloudflare's default invocation logs to avoid duplicates when using evlog:",[472,2260,2265],{"className":2261,"code":2262,"filename":2263,"language":2264,"meta":478,"style":478},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[observability]\nenabled = false\n","wrangler.toml","toml",[402,2266,2267,2278],{"__ignoreMap":478},[482,2268,2269,2272,2275],{"class":484,"line":485},[482,2270,2271],{"class":559},"[",[482,2273,2274],{"class":488},"observability",[482,2276,2277],{"class":559},"]\n",[482,2279,2280,2283,2285],{"class":484,"line":587},[482,2281,2282],{"class":563},"enabled ",[482,2284,2081],{"class":559},[482,2286,2287],{"class":783}," false\n",[460,2289,2291],{"id":2290},"run-locally","Run Locally",[472,2293,2296],{"className":474,"code":2294,"filename":2295,"language":477,"meta":478,"style":478},"wrangler dev\n","Terminal",[402,2297,2298],{"__ignoreMap":478},[482,2299,2300,2303],{"class":484,"line":485},[482,2301,2302],{"class":488},"wrangler",[482,2304,2305],{"class":491}," dev\n",[460,2307,2309],{"id":2308},"next-steps","Next Steps",[419,2311,2312,2317,2322,2327],{},[422,2313,2314,2316],{},[449,2315,51],{"href":52},": Design comprehensive events with context layering",[422,2318,2319,2321],{},[449,2320,290],{"href":295},": Send logs to Axiom, Sentry, PostHog, and more",[422,2323,2324,2326],{},[449,2325,175],{"href":176},": Control log volume with head and tail sampling",[422,2328,2329,2331,2332,835,2334,839,2336,2339],{},[449,2330,56],{"href":57},": Throw errors with ",[402,2333,1876],{},[402,2335,1893],{},[402,2337,2338],{},"link"," fields",[2341,2342,2343],"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":478,"searchDepth":587,"depth":587,"links":2345},[2346,2350,2351,2352,2353,2354,2355,2356],{"id":462,"depth":587,"text":20,"children":2347},[2348,2349],{"id":466,"depth":594,"text":467},{"id":541,"depth":594,"text":542},{"id":875,"depth":587,"text":51},{"id":1381,"depth":587,"text":1382},{"id":1935,"depth":587,"text":170},{"id":1949,"depth":587,"text":1950},{"id":2254,"depth":587,"text":2255},{"id":2290,"depth":587,"text":2291},{"id":2308,"depth":587,"text":2309},"Wide events, structured errors, and logging in Cloudflare Workers and Durable Objects.","md",null,{},{"title":266,"icon":269},{"title":266,"description":2357},"ZXs1yKjKKzQ80CGPR6TwDh4NwsfkH3rPw22EB1gcgm8",[2365,2367],{"title":261,"path":262,"stem":263,"description":2366,"icon":264,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in React Router applications.",{"title":271,"path":272,"stem":273,"description":2368,"icon":183,"children":-1},"Use evlog in standalone TypeScript scripts, CLI tools, queues, cron jobs, and any TypeScript process.",1778106398915]