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