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