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