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