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