[{"data":1,"prerenderedAt":1981},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-astro":276,"-frameworks-astro-surround":1976},[4,30,65,105,187,246,262],{"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,168,173,177,182],{"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},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router",{"title":169,"path":170,"stem":171,"icon":172},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":174,"path":175,"stem":176,"icon":89},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":178,"path":179,"stem":180,"icon":181},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":183,"path":184,"stem":185,"icon":186},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":188,"path":189,"stem":190,"children":191,"page":29},"Adapters","\u002Fadapters","5.adapters",[192,196,201,206,211,216,221,226,231,236,241],{"title":36,"path":193,"stem":194,"icon":195},"\u002Fadapters\u002Foverview","5.adapters\u002F1.overview","i-custom-plug",{"title":197,"path":198,"stem":199,"icon":200},"Pipeline","\u002Fadapters\u002Fpipeline","5.adapters\u002F10.pipeline","i-lucide-workflow",{"title":202,"path":203,"stem":204,"icon":205},"Browser","\u002Fadapters\u002Fbrowser","5.adapters\u002F11.browser","i-lucide-globe",{"title":207,"path":208,"stem":209,"icon":210},"Axiom","\u002Fadapters\u002Faxiom","5.adapters\u002F2.axiom","i-custom-axiom",{"title":212,"path":213,"stem":214,"icon":215},"OTLP","\u002Fadapters\u002Fotlp","5.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":217,"path":218,"stem":219,"icon":220},"PostHog","\u002Fadapters\u002Fposthog","5.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":222,"path":223,"stem":224,"icon":225},"Sentry","\u002Fadapters\u002Fsentry","5.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":227,"path":228,"stem":229,"icon":230},"Better Stack","\u002Fadapters\u002Fbetter-stack","5.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":232,"path":233,"stem":234,"icon":235},"File System","\u002Fadapters\u002Ffs","5.adapters\u002F7.fs","i-lucide-hard-drive",{"title":237,"path":238,"stem":239,"icon":240},"HyperDX","\u002Fadapters\u002Fhyperdx","5.adapters\u002F8.hyperdx","i-custom-hyperdx",{"title":242,"path":243,"stem":244,"icon":245},"Custom Adapters","\u002Fadapters\u002Fcustom","5.adapters\u002F9.custom","i-lucide-code",{"title":247,"path":248,"stem":249,"children":250,"page":29},"Enrichers","\u002Fenrichers","6.enrichers",[251,254,258],{"title":36,"path":252,"stem":253,"icon":28},"\u002Fenrichers\u002Foverview","6.enrichers\u002F1.overview",{"title":255,"path":256,"stem":257,"icon":186},"Built-in","\u002Fenrichers\u002Fbuilt-in","6.enrichers\u002F2.built-in",{"title":259,"path":260,"stem":261,"icon":245},"Custom","\u002Fenrichers\u002Fcustom","6.enrichers\u002F3.custom",{"title":263,"path":264,"stem":265,"children":266,"page":29},"NuxtHub","\u002Fnuxthub","7.nuxthub",[267,271],{"title":36,"path":268,"stem":269,"icon":270},"\u002Fnuxthub\u002Foverview","7.nuxthub\u002F1.overview","i-lucide-database",{"title":272,"path":273,"stem":274,"icon":275},"Retention","\u002Fnuxthub\u002Fretention","7.nuxthub\u002F2.retention","i-lucide-clock",{"id":277,"title":178,"body":278,"description":1969,"extension":1970,"links":1971,"meta":1972,"navigation":1973,"path":179,"seo":1974,"stem":180,"__hash__":1975},"docs\u002F4.frameworks\u002F14.astro.md",{"type":279,"value":280,"toc":1957},"minimark",[281,290,371,380,384,389,410,414,843,847,955,958,965,1233,1278,1282,1289,1668,1671,1682,1686,1692,1908,1913,1917,1953],[282,283,284,285,289],"p",{},"Astro doesn't have a dedicated evlog integration. Instead, use the core ",[286,287,288],"code",{},"evlog"," package with Astro's middleware to create request-scoped loggers manually.",[291,292,293],"code-collapse",{},[294,295,301],"pre",{"className":296,"code":297,"filename":298,"language":299,"meta":300,"style":300},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Set up evlog in my Astro app.\n\n- Install evlog: pnpm add evlog\n- Import initLogger and createRequestLogger from 'evlog'\n- Call initLogger({ env: { service: 'my-app' } }) in Astro middleware\n- Create a request logger with createRequestLogger({ method, path }) per request\n- Use log.set() in API routes and middleware to accumulate context\n- Call log.emit() before returning the response (no auto-emit lifecycle)\n\nDocs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fastro\nAdapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n","Prompt","txt","",[286,302,303,311,318,324,330,336,342,348,354,359,365],{"__ignoreMap":300},[304,305,308],"span",{"class":306,"line":307},"line",1,[304,309,310],{},"Set up evlog in my Astro app.\n",[304,312,314],{"class":306,"line":313},2,[304,315,317],{"emptyLinePlaceholder":316},true,"\n",[304,319,321],{"class":306,"line":320},3,[304,322,323],{},"- Install evlog: pnpm add evlog\n",[304,325,327],{"class":306,"line":326},4,[304,328,329],{},"- Import initLogger and createRequestLogger from 'evlog'\n",[304,331,333],{"class":306,"line":332},5,[304,334,335],{},"- Call initLogger({ env: { service: 'my-app' } }) in Astro middleware\n",[304,337,339],{"class":306,"line":338},6,[304,340,341],{},"- Create a request logger with createRequestLogger({ method, path }) per request\n",[304,343,345],{"class":306,"line":344},7,[304,346,347],{},"- Use log.set() in API routes and middleware to accumulate context\n",[304,349,351],{"class":306,"line":350},8,[304,352,353],{},"- Call log.emit() before returning the response (no auto-emit lifecycle)\n",[304,355,357],{"class":306,"line":356},9,[304,358,317],{"emptyLinePlaceholder":316},[304,360,362],{"class":306,"line":361},10,[304,363,364],{},"Docs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fastro\n",[304,366,368],{"class":306,"line":367},11,[304,369,370],{},"Adapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n",[372,373,375,376,379],"callout",{"color":374,"icon":13},"info","This is a guide-level integration. It uses the generic ",[286,377,378],{},"createRequestLogger"," API rather than a framework-specific module.",[381,382,20],"h2",{"id":383},"quick-start",[385,386,388],"h3",{"id":387},"_1-install","1. Install",[294,390,395],{"className":391,"code":392,"filename":393,"language":394,"meta":300,"style":300},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add evlog\n","Terminal","bash",[286,396,397],{"__ignoreMap":300},[304,398,399,403,407],{"class":306,"line":307},[304,400,402],{"class":401},"sBMFI","bun",[304,404,406],{"class":405},"sfazB"," add",[304,408,409],{"class":405}," evlog\n",[385,411,413],{"id":412},"_2-create-a-middleware","2. Create a middleware",[294,415,420],{"className":416,"code":417,"filename":418,"language":419,"meta":300,"style":300},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineMiddleware } from 'astro:middleware'\nimport { initLogger, createRequestLogger } from 'evlog'\n\ninitLogger({\n  env: { service: 'my-astro-app' },\n})\n\nexport const onRequest = defineMiddleware(async ({ request, locals }, next) => {\n  const url = new URL(request.url)\n\n  const log = createRequestLogger({\n    method: request.method,\n    path: url.pathname,\n  })\n\n  locals.log = log\n\n  try {\n    const response = await next()\n    log.emit()\n    return response\n  } catch (error) {\n    log.error(error instanceof Error ? error : new Error(String(error)))\n    log.emit()\n    throw error\n  }\n})\n","src\u002Fmiddleware.ts","typescript",[286,421,422,451,476,480,492,519,527,531,580,610,614,629,647,664,672,677,693,698,706,725,738,747,766,810,821,830,836],{"__ignoreMap":300},[304,423,424,428,432,436,439,442,445,448],{"class":306,"line":307},[304,425,427],{"class":426},"s7zQu","import",[304,429,431],{"class":430},"sMK4o"," {",[304,433,435],{"class":434},"sTEyZ"," defineMiddleware",[304,437,438],{"class":430}," }",[304,440,441],{"class":426}," from",[304,443,444],{"class":430}," '",[304,446,447],{"class":405},"astro:middleware",[304,449,450],{"class":430},"'\n",[304,452,453,455,457,460,463,466,468,470,472,474],{"class":306,"line":313},[304,454,427],{"class":426},[304,456,431],{"class":430},[304,458,459],{"class":434}," initLogger",[304,461,462],{"class":430},",",[304,464,465],{"class":434}," createRequestLogger",[304,467,438],{"class":430},[304,469,441],{"class":426},[304,471,444],{"class":430},[304,473,288],{"class":405},[304,475,450],{"class":430},[304,477,478],{"class":306,"line":320},[304,479,317],{"emptyLinePlaceholder":316},[304,481,482,486,489],{"class":306,"line":326},[304,483,485],{"class":484},"s2Zo4","initLogger",[304,487,488],{"class":434},"(",[304,490,491],{"class":430},"{\n",[304,493,494,498,501,503,506,508,510,513,516],{"class":306,"line":332},[304,495,497],{"class":496},"swJcz","  env",[304,499,500],{"class":430},":",[304,502,431],{"class":430},[304,504,505],{"class":496}," service",[304,507,500],{"class":430},[304,509,444],{"class":430},[304,511,512],{"class":405},"my-astro-app",[304,514,515],{"class":430},"'",[304,517,518],{"class":430}," },\n",[304,520,521,524],{"class":306,"line":338},[304,522,523],{"class":430},"}",[304,525,526],{"class":434},")\n",[304,528,529],{"class":306,"line":344},[304,530,317],{"emptyLinePlaceholder":316},[304,532,533,536,540,543,546,548,550,553,556,560,562,565,568,571,574,577],{"class":306,"line":350},[304,534,535],{"class":426},"export",[304,537,539],{"class":538},"spNyl"," const",[304,541,542],{"class":434}," onRequest ",[304,544,545],{"class":430},"=",[304,547,435],{"class":484},[304,549,488],{"class":434},[304,551,552],{"class":538},"async",[304,554,555],{"class":430}," ({",[304,557,559],{"class":558},"sHdIc"," request",[304,561,462],{"class":430},[304,563,564],{"class":558}," locals",[304,566,567],{"class":430}," },",[304,569,570],{"class":558}," next",[304,572,573],{"class":430},")",[304,575,576],{"class":538}," =>",[304,578,579],{"class":430}," {\n",[304,581,582,585,588,591,594,597,599,602,605,608],{"class":306,"line":356},[304,583,584],{"class":538},"  const",[304,586,587],{"class":434}," url",[304,589,590],{"class":430}," =",[304,592,593],{"class":430}," new",[304,595,596],{"class":484}," URL",[304,598,488],{"class":496},[304,600,601],{"class":434},"request",[304,603,604],{"class":430},".",[304,606,607],{"class":434},"url",[304,609,526],{"class":496},[304,611,612],{"class":306,"line":361},[304,613,317],{"emptyLinePlaceholder":316},[304,615,616,618,621,623,625,627],{"class":306,"line":367},[304,617,584],{"class":538},[304,619,620],{"class":434}," log",[304,622,590],{"class":430},[304,624,465],{"class":484},[304,626,488],{"class":496},[304,628,491],{"class":430},[304,630,632,635,637,639,641,644],{"class":306,"line":631},12,[304,633,634],{"class":496},"    method",[304,636,500],{"class":430},[304,638,559],{"class":434},[304,640,604],{"class":430},[304,642,643],{"class":434},"method",[304,645,646],{"class":430},",\n",[304,648,650,653,655,657,659,662],{"class":306,"line":649},13,[304,651,652],{"class":496},"    path",[304,654,500],{"class":430},[304,656,587],{"class":434},[304,658,604],{"class":430},[304,660,661],{"class":434},"pathname",[304,663,646],{"class":430},[304,665,667,670],{"class":306,"line":666},14,[304,668,669],{"class":430},"  }",[304,671,526],{"class":496},[304,673,675],{"class":306,"line":674},15,[304,676,317],{"emptyLinePlaceholder":316},[304,678,680,683,685,688,690],{"class":306,"line":679},16,[304,681,682],{"class":434},"  locals",[304,684,604],{"class":430},[304,686,687],{"class":434},"log",[304,689,590],{"class":430},[304,691,692],{"class":434}," log\n",[304,694,696],{"class":306,"line":695},17,[304,697,317],{"emptyLinePlaceholder":316},[304,699,701,704],{"class":306,"line":700},18,[304,702,703],{"class":426},"  try",[304,705,579],{"class":430},[304,707,709,712,715,717,720,722],{"class":306,"line":708},19,[304,710,711],{"class":538},"    const",[304,713,714],{"class":434}," response",[304,716,590],{"class":430},[304,718,719],{"class":426}," await",[304,721,570],{"class":484},[304,723,724],{"class":496},"()\n",[304,726,728,731,733,736],{"class":306,"line":727},20,[304,729,730],{"class":434},"    log",[304,732,604],{"class":430},[304,734,735],{"class":484},"emit",[304,737,724],{"class":496},[304,739,741,744],{"class":306,"line":740},21,[304,742,743],{"class":426},"    return",[304,745,746],{"class":434}," response\n",[304,748,750,752,755,758,761,764],{"class":306,"line":749},22,[304,751,669],{"class":430},[304,753,754],{"class":426}," catch",[304,756,757],{"class":496}," (",[304,759,760],{"class":434},"error",[304,762,763],{"class":496},") ",[304,765,491],{"class":430},[304,767,769,771,773,775,777,779,782,785,788,791,794,796,798,800,803,805,807],{"class":306,"line":768},23,[304,770,730],{"class":434},[304,772,604],{"class":430},[304,774,760],{"class":484},[304,776,488],{"class":496},[304,778,760],{"class":434},[304,780,781],{"class":430}," instanceof",[304,783,784],{"class":401}," Error",[304,786,787],{"class":430}," ?",[304,789,790],{"class":434}," error",[304,792,793],{"class":430}," :",[304,795,593],{"class":430},[304,797,784],{"class":484},[304,799,488],{"class":496},[304,801,802],{"class":484},"String",[304,804,488],{"class":496},[304,806,760],{"class":434},[304,808,809],{"class":496},")))\n",[304,811,813,815,817,819],{"class":306,"line":812},24,[304,814,730],{"class":434},[304,816,604],{"class":430},[304,818,735],{"class":484},[304,820,724],{"class":496},[304,822,824,827],{"class":306,"line":823},25,[304,825,826],{"class":426},"    throw",[304,828,829],{"class":434}," error\n",[304,831,833],{"class":306,"line":832},26,[304,834,835],{"class":430},"  }\n",[304,837,839,841],{"class":306,"line":838},27,[304,840,523],{"class":430},[304,842,526],{"class":434},[385,844,846],{"id":845},"_3-type-your-locals","3. Type your locals",[294,848,851],{"className":416,"code":849,"filename":850,"language":419,"meta":300,"style":300},"\u002F\u002F\u002F \u003Creference types=\"astro\u002Fclient\" \u002F>\n\nimport type { RequestLogger } from 'evlog'\n\ndeclare namespace App {\n  interface Locals {\n    log: RequestLogger\n  }\n}\n","src\u002Fenv.d.ts",[286,852,853,884,888,910,914,927,937,946,950],{"__ignoreMap":300},[304,854,855,859,862,866,870,872,875,879,881],{"class":306,"line":307},[304,856,858],{"class":857},"sHwdD","\u002F\u002F\u002F ",[304,860,861],{"class":426},"\u003C",[304,863,865],{"class":864},"s5tWE","reference",[304,867,869],{"class":868},"s6hCs"," types",[304,871,545],{"class":426},[304,873,874],{"class":426},"\"",[304,876,878],{"class":877},"smbvS","astro\u002Fclient",[304,880,874],{"class":426},[304,882,883],{"class":426}," \u002F>\n",[304,885,886],{"class":306,"line":313},[304,887,317],{"emptyLinePlaceholder":316},[304,889,890,892,895,897,900,902,904,906,908],{"class":306,"line":320},[304,891,427],{"class":426},[304,893,894],{"class":426}," type",[304,896,431],{"class":430},[304,898,899],{"class":434}," RequestLogger",[304,901,438],{"class":430},[304,903,441],{"class":426},[304,905,444],{"class":430},[304,907,288],{"class":405},[304,909,450],{"class":430},[304,911,912],{"class":306,"line":326},[304,913,317],{"emptyLinePlaceholder":316},[304,915,916,919,922,925],{"class":306,"line":332},[304,917,918],{"class":538},"declare",[304,920,921],{"class":538}," namespace",[304,923,924],{"class":401}," App",[304,926,579],{"class":430},[304,928,929,932,935],{"class":306,"line":338},[304,930,931],{"class":538},"  interface",[304,933,934],{"class":401}," Locals",[304,936,579],{"class":430},[304,938,939,941,943],{"class":306,"line":344},[304,940,730],{"class":496},[304,942,500],{"class":430},[304,944,945],{"class":401}," RequestLogger\n",[304,947,948],{"class":306,"line":350},[304,949,835],{"class":430},[304,951,952],{"class":306,"line":356},[304,953,954],{"class":430},"}\n",[381,956,46],{"id":957},"wide-events",[282,959,960,961,964],{},"Access the logger from ",[286,962,963],{},"Astro.locals"," in your pages and API routes:",[294,966,969],{"className":416,"code":967,"filename":968,"language":419,"meta":300,"style":300},"import type { APIRoute } from 'astro'\n\nexport const GET: APIRoute = async ({ params, locals }) => {\n  locals.log.set({ user: { id: params.id } })\n\n  const user = await db.findUser(params.id)\n  locals.log.set({ user: { name: user.name, plan: user.plan } })\n\n  return new Response(JSON.stringify(user), {\n    headers: { 'Content-Type': 'application\u002Fjson' },\n  })\n}\n","src\u002Fpages\u002Fapi\u002Fusers\u002F[id].ts",[286,970,971,993,997,1031,1074,1078,1107,1161,1165,1196,1223,1229],{"__ignoreMap":300},[304,972,973,975,977,979,982,984,986,988,991],{"class":306,"line":307},[304,974,427],{"class":426},[304,976,894],{"class":426},[304,978,431],{"class":430},[304,980,981],{"class":434}," APIRoute",[304,983,438],{"class":430},[304,985,441],{"class":426},[304,987,444],{"class":430},[304,989,990],{"class":405},"astro",[304,992,450],{"class":430},[304,994,995],{"class":306,"line":313},[304,996,317],{"emptyLinePlaceholder":316},[304,998,999,1001,1003,1006,1008,1010,1012,1015,1017,1020,1022,1024,1027,1029],{"class":306,"line":320},[304,1000,535],{"class":426},[304,1002,539],{"class":538},[304,1004,1005],{"class":434}," GET",[304,1007,500],{"class":430},[304,1009,981],{"class":401},[304,1011,590],{"class":430},[304,1013,1014],{"class":538}," async",[304,1016,555],{"class":430},[304,1018,1019],{"class":558}," params",[304,1021,462],{"class":430},[304,1023,564],{"class":558},[304,1025,1026],{"class":430}," })",[304,1028,576],{"class":538},[304,1030,579],{"class":430},[304,1032,1033,1035,1037,1039,1041,1044,1046,1049,1052,1054,1056,1059,1061,1063,1065,1068,1070,1072],{"class":306,"line":326},[304,1034,682],{"class":434},[304,1036,604],{"class":430},[304,1038,687],{"class":434},[304,1040,604],{"class":430},[304,1042,1043],{"class":484},"set",[304,1045,488],{"class":496},[304,1047,1048],{"class":430},"{",[304,1050,1051],{"class":496}," user",[304,1053,500],{"class":430},[304,1055,431],{"class":430},[304,1057,1058],{"class":496}," id",[304,1060,500],{"class":430},[304,1062,1019],{"class":434},[304,1064,604],{"class":430},[304,1066,1067],{"class":434},"id",[304,1069,438],{"class":430},[304,1071,438],{"class":430},[304,1073,526],{"class":496},[304,1075,1076],{"class":306,"line":332},[304,1077,317],{"emptyLinePlaceholder":316},[304,1079,1080,1082,1084,1086,1088,1091,1093,1096,1098,1101,1103,1105],{"class":306,"line":338},[304,1081,584],{"class":538},[304,1083,1051],{"class":434},[304,1085,590],{"class":430},[304,1087,719],{"class":426},[304,1089,1090],{"class":434}," db",[304,1092,604],{"class":430},[304,1094,1095],{"class":484},"findUser",[304,1097,488],{"class":496},[304,1099,1100],{"class":434},"params",[304,1102,604],{"class":430},[304,1104,1067],{"class":434},[304,1106,526],{"class":496},[304,1108,1109,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1132,1134,1136,1138,1141,1143,1146,1148,1150,1152,1155,1157,1159],{"class":306,"line":344},[304,1110,682],{"class":434},[304,1112,604],{"class":430},[304,1114,687],{"class":434},[304,1116,604],{"class":430},[304,1118,1043],{"class":484},[304,1120,488],{"class":496},[304,1122,1048],{"class":430},[304,1124,1051],{"class":496},[304,1126,500],{"class":430},[304,1128,431],{"class":430},[304,1130,1131],{"class":496}," name",[304,1133,500],{"class":430},[304,1135,1051],{"class":434},[304,1137,604],{"class":430},[304,1139,1140],{"class":434},"name",[304,1142,462],{"class":430},[304,1144,1145],{"class":496}," plan",[304,1147,500],{"class":430},[304,1149,1051],{"class":434},[304,1151,604],{"class":430},[304,1153,1154],{"class":434},"plan",[304,1156,438],{"class":430},[304,1158,438],{"class":430},[304,1160,526],{"class":496},[304,1162,1163],{"class":306,"line":350},[304,1164,317],{"emptyLinePlaceholder":316},[304,1166,1167,1170,1172,1175,1177,1180,1182,1185,1187,1190,1192,1194],{"class":306,"line":356},[304,1168,1169],{"class":426},"  return",[304,1171,593],{"class":430},[304,1173,1174],{"class":484}," Response",[304,1176,488],{"class":496},[304,1178,1179],{"class":434},"JSON",[304,1181,604],{"class":430},[304,1183,1184],{"class":484},"stringify",[304,1186,488],{"class":496},[304,1188,1189],{"class":434},"user",[304,1191,573],{"class":496},[304,1193,462],{"class":430},[304,1195,579],{"class":430},[304,1197,1198,1201,1203,1205,1207,1210,1212,1214,1216,1219,1221],{"class":306,"line":361},[304,1199,1200],{"class":496},"    headers",[304,1202,500],{"class":430},[304,1204,431],{"class":430},[304,1206,444],{"class":430},[304,1208,1209],{"class":496},"Content-Type",[304,1211,515],{"class":430},[304,1213,500],{"class":430},[304,1215,444],{"class":430},[304,1217,1218],{"class":405},"application\u002Fjson",[304,1220,515],{"class":430},[304,1222,518],{"class":430},[304,1224,1225,1227],{"class":306,"line":367},[304,1226,669],{"class":430},[304,1228,526],{"class":496},[304,1230,1231],{"class":306,"line":631},[304,1232,954],{"class":430},[294,1234,1237],{"className":391,"code":1235,"filename":1236,"language":394,"meta":300,"style":300},"14:58:15 INFO [my-astro-app] GET \u002Fapi\u002Fusers\u002Fusr_123\n  ├─ user: id=usr_123 name=Alice plan=pro\n  └─ requestId: 4a8ff3a8-...\n","Terminal output",[286,1238,1239,1250,1267],{"__ignoreMap":300},[304,1240,1241,1244,1247],{"class":306,"line":307},[304,1242,1243],{"class":401},"14:58:15",[304,1245,1246],{"class":405}," INFO",[304,1248,1249],{"class":434}," [my-astro-app] GET \u002Fapi\u002Fusers\u002Fusr_123\n",[304,1251,1252,1255,1258,1261,1264],{"class":306,"line":313},[304,1253,1254],{"class":401},"  ├─",[304,1256,1257],{"class":405}," user:",[304,1259,1260],{"class":405}," id=usr_123",[304,1262,1263],{"class":405}," name=Alice",[304,1265,1266],{"class":405}," plan=pro\n",[304,1268,1269,1272,1275],{"class":306,"line":320},[304,1270,1271],{"class":401},"  └─",[304,1273,1274],{"class":405}," requestId:",[304,1276,1277],{"class":405}," 4a8ff3a8-...\n",[381,1279,1281],{"id":1280},"error-handling","Error Handling",[282,1283,1284,1285,1288],{},"Use ",[286,1286,1287],{},"createError"," for structured errors:",[294,1290,1293],{"className":416,"code":1291,"filename":1292,"language":419,"meta":300,"style":300},"import type { APIRoute } from 'astro'\nimport { createError, parseError } from 'evlog'\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n  const body = await request.json()\n  locals.log.set({ cart: { items: body.items } })\n\n  if (!body.paymentMethod) {\n    const error = createError({\n      status: 400,\n      message: 'Missing payment method',\n      why: 'No payment method was provided',\n      fix: 'Include a paymentMethod field in the request body',\n    })\n    locals.log.error(error)\n    const parsed = parseError(error)\n    return new Response(JSON.stringify(parsed), { status: parsed.status })\n  }\n\n  return new Response(JSON.stringify({ success: true }))\n}\n","src\u002Fpages\u002Fapi\u002Fcheckout.ts",[286,1294,1295,1315,1339,1343,1374,1394,1435,1439,1461,1475,1488,1504,1520,1536,1543,1562,1579,1622,1626,1630,1664],{"__ignoreMap":300},[304,1296,1297,1299,1301,1303,1305,1307,1309,1311,1313],{"class":306,"line":307},[304,1298,427],{"class":426},[304,1300,894],{"class":426},[304,1302,431],{"class":430},[304,1304,981],{"class":434},[304,1306,438],{"class":430},[304,1308,441],{"class":426},[304,1310,444],{"class":430},[304,1312,990],{"class":405},[304,1314,450],{"class":430},[304,1316,1317,1319,1321,1324,1326,1329,1331,1333,1335,1337],{"class":306,"line":313},[304,1318,427],{"class":426},[304,1320,431],{"class":430},[304,1322,1323],{"class":434}," createError",[304,1325,462],{"class":430},[304,1327,1328],{"class":434}," parseError",[304,1330,438],{"class":430},[304,1332,441],{"class":426},[304,1334,444],{"class":430},[304,1336,288],{"class":405},[304,1338,450],{"class":430},[304,1340,1341],{"class":306,"line":320},[304,1342,317],{"emptyLinePlaceholder":316},[304,1344,1345,1347,1349,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372],{"class":306,"line":326},[304,1346,535],{"class":426},[304,1348,539],{"class":538},[304,1350,1351],{"class":434}," POST",[304,1353,500],{"class":430},[304,1355,981],{"class":401},[304,1357,590],{"class":430},[304,1359,1014],{"class":538},[304,1361,555],{"class":430},[304,1363,559],{"class":558},[304,1365,462],{"class":430},[304,1367,564],{"class":558},[304,1369,1026],{"class":430},[304,1371,576],{"class":538},[304,1373,579],{"class":430},[304,1375,1376,1378,1381,1383,1385,1387,1389,1392],{"class":306,"line":332},[304,1377,584],{"class":538},[304,1379,1380],{"class":434}," body",[304,1382,590],{"class":430},[304,1384,719],{"class":426},[304,1386,559],{"class":434},[304,1388,604],{"class":430},[304,1390,1391],{"class":484},"json",[304,1393,724],{"class":496},[304,1395,1396,1398,1400,1402,1404,1406,1408,1410,1413,1415,1417,1420,1422,1424,1426,1429,1431,1433],{"class":306,"line":338},[304,1397,682],{"class":434},[304,1399,604],{"class":430},[304,1401,687],{"class":434},[304,1403,604],{"class":430},[304,1405,1043],{"class":484},[304,1407,488],{"class":496},[304,1409,1048],{"class":430},[304,1411,1412],{"class":496}," cart",[304,1414,500],{"class":430},[304,1416,431],{"class":430},[304,1418,1419],{"class":496}," items",[304,1421,500],{"class":430},[304,1423,1380],{"class":434},[304,1425,604],{"class":430},[304,1427,1428],{"class":434},"items",[304,1430,438],{"class":430},[304,1432,438],{"class":430},[304,1434,526],{"class":496},[304,1436,1437],{"class":306,"line":344},[304,1438,317],{"emptyLinePlaceholder":316},[304,1440,1441,1444,1446,1449,1452,1454,1457,1459],{"class":306,"line":350},[304,1442,1443],{"class":426},"  if",[304,1445,757],{"class":496},[304,1447,1448],{"class":430},"!",[304,1450,1451],{"class":434},"body",[304,1453,604],{"class":430},[304,1455,1456],{"class":434},"paymentMethod",[304,1458,763],{"class":496},[304,1460,491],{"class":430},[304,1462,1463,1465,1467,1469,1471,1473],{"class":306,"line":356},[304,1464,711],{"class":538},[304,1466,790],{"class":434},[304,1468,590],{"class":430},[304,1470,1323],{"class":484},[304,1472,488],{"class":496},[304,1474,491],{"class":430},[304,1476,1477,1480,1482,1486],{"class":306,"line":361},[304,1478,1479],{"class":496},"      status",[304,1481,500],{"class":430},[304,1483,1485],{"class":1484},"sbssI"," 400",[304,1487,646],{"class":430},[304,1489,1490,1493,1495,1497,1500,1502],{"class":306,"line":367},[304,1491,1492],{"class":496},"      message",[304,1494,500],{"class":430},[304,1496,444],{"class":430},[304,1498,1499],{"class":405},"Missing payment method",[304,1501,515],{"class":430},[304,1503,646],{"class":430},[304,1505,1506,1509,1511,1513,1516,1518],{"class":306,"line":631},[304,1507,1508],{"class":496},"      why",[304,1510,500],{"class":430},[304,1512,444],{"class":430},[304,1514,1515],{"class":405},"No payment method was provided",[304,1517,515],{"class":430},[304,1519,646],{"class":430},[304,1521,1522,1525,1527,1529,1532,1534],{"class":306,"line":649},[304,1523,1524],{"class":496},"      fix",[304,1526,500],{"class":430},[304,1528,444],{"class":430},[304,1530,1531],{"class":405},"Include a paymentMethod field in the request body",[304,1533,515],{"class":430},[304,1535,646],{"class":430},[304,1537,1538,1541],{"class":306,"line":666},[304,1539,1540],{"class":430},"    }",[304,1542,526],{"class":496},[304,1544,1545,1548,1550,1552,1554,1556,1558,1560],{"class":306,"line":674},[304,1546,1547],{"class":434},"    locals",[304,1549,604],{"class":430},[304,1551,687],{"class":434},[304,1553,604],{"class":430},[304,1555,760],{"class":484},[304,1557,488],{"class":496},[304,1559,760],{"class":434},[304,1561,526],{"class":496},[304,1563,1564,1566,1569,1571,1573,1575,1577],{"class":306,"line":679},[304,1565,711],{"class":538},[304,1567,1568],{"class":434}," parsed",[304,1570,590],{"class":430},[304,1572,1328],{"class":484},[304,1574,488],{"class":496},[304,1576,760],{"class":434},[304,1578,526],{"class":496},[304,1580,1581,1583,1585,1587,1589,1591,1593,1595,1597,1600,1602,1604,1606,1609,1611,1613,1615,1618,1620],{"class":306,"line":695},[304,1582,743],{"class":426},[304,1584,593],{"class":430},[304,1586,1174],{"class":484},[304,1588,488],{"class":496},[304,1590,1179],{"class":434},[304,1592,604],{"class":430},[304,1594,1184],{"class":484},[304,1596,488],{"class":496},[304,1598,1599],{"class":434},"parsed",[304,1601,573],{"class":496},[304,1603,462],{"class":430},[304,1605,431],{"class":430},[304,1607,1608],{"class":496}," status",[304,1610,500],{"class":430},[304,1612,1568],{"class":434},[304,1614,604],{"class":430},[304,1616,1617],{"class":434},"status",[304,1619,438],{"class":430},[304,1621,526],{"class":496},[304,1623,1624],{"class":306,"line":700},[304,1625,835],{"class":430},[304,1627,1628],{"class":306,"line":708},[304,1629,317],{"emptyLinePlaceholder":316},[304,1631,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1653,1655,1659,1661],{"class":306,"line":727},[304,1633,1169],{"class":426},[304,1635,593],{"class":430},[304,1637,1174],{"class":484},[304,1639,488],{"class":496},[304,1641,1179],{"class":434},[304,1643,604],{"class":430},[304,1645,1184],{"class":484},[304,1647,488],{"class":496},[304,1649,1048],{"class":430},[304,1651,1652],{"class":496}," success",[304,1654,500],{"class":430},[304,1656,1658],{"class":1657},"sfNiH"," true",[304,1660,438],{"class":430},[304,1662,1663],{"class":496},"))\n",[304,1665,1666],{"class":306,"line":740},[304,1667,954],{"class":430},[381,1669,76],{"id":1670},"configuration",[282,1672,1673,1674,1678,1679,1681],{},"See the ",[1675,1676,1677],"a",{"href":77},"Configuration reference"," for all available options (",[286,1680,485],{},", middleware options, sampling, silent mode, etc.).",[381,1683,1685],{"id":1684},"drain","Drain",[282,1687,1688,1689,1691],{},"Configure drain in ",[286,1690,485],{}," inside your middleware:",[294,1693,1695],{"className":416,"code":1694,"filename":418,"language":419,"meta":300,"style":300},"import { initLogger, createRequestLogger } from 'evlog'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\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())\n\ninitLogger({\n  env: { service: 'my-astro-app' },\n  drain,\n})\n",[286,1696,1697,1719,1739,1759,1780,1784,1808,1837,1843,1863,1867,1875,1895,1902],{"__ignoreMap":300},[304,1698,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717],{"class":306,"line":307},[304,1700,427],{"class":426},[304,1702,431],{"class":430},[304,1704,459],{"class":434},[304,1706,462],{"class":430},[304,1708,465],{"class":434},[304,1710,438],{"class":430},[304,1712,441],{"class":426},[304,1714,444],{"class":430},[304,1716,288],{"class":405},[304,1718,450],{"class":430},[304,1720,1721,1723,1725,1728,1730,1732,1734,1737],{"class":306,"line":313},[304,1722,427],{"class":426},[304,1724,431],{"class":430},[304,1726,1727],{"class":434}," createAxiomDrain",[304,1729,438],{"class":430},[304,1731,441],{"class":426},[304,1733,444],{"class":430},[304,1735,1736],{"class":405},"evlog\u002Faxiom",[304,1738,450],{"class":430},[304,1740,1741,1743,1745,1748,1750,1752,1754,1757],{"class":306,"line":320},[304,1742,427],{"class":426},[304,1744,431],{"class":430},[304,1746,1747],{"class":434}," createDrainPipeline",[304,1749,438],{"class":430},[304,1751,441],{"class":426},[304,1753,444],{"class":430},[304,1755,1756],{"class":405},"evlog\u002Fpipeline",[304,1758,450],{"class":430},[304,1760,1761,1763,1765,1767,1770,1772,1774,1776,1778],{"class":306,"line":326},[304,1762,427],{"class":426},[304,1764,894],{"class":426},[304,1766,431],{"class":430},[304,1768,1769],{"class":434}," DrainContext",[304,1771,438],{"class":430},[304,1773,441],{"class":426},[304,1775,444],{"class":430},[304,1777,288],{"class":405},[304,1779,450],{"class":430},[304,1781,1782],{"class":306,"line":332},[304,1783,317],{"emptyLinePlaceholder":316},[304,1785,1786,1789,1792,1794,1796,1798,1801,1804,1806],{"class":306,"line":338},[304,1787,1788],{"class":538},"const",[304,1790,1791],{"class":434}," pipeline ",[304,1793,545],{"class":430},[304,1795,1747],{"class":484},[304,1797,861],{"class":430},[304,1799,1800],{"class":401},"DrainContext",[304,1802,1803],{"class":430},">",[304,1805,488],{"class":434},[304,1807,491],{"class":430},[304,1809,1810,1813,1815,1817,1820,1822,1825,1827,1830,1832,1835],{"class":306,"line":344},[304,1811,1812],{"class":496},"  batch",[304,1814,500],{"class":430},[304,1816,431],{"class":430},[304,1818,1819],{"class":496}," size",[304,1821,500],{"class":430},[304,1823,1824],{"class":1484}," 50",[304,1826,462],{"class":430},[304,1828,1829],{"class":496}," intervalMs",[304,1831,500],{"class":430},[304,1833,1834],{"class":1484}," 5000",[304,1836,518],{"class":430},[304,1838,1839,1841],{"class":306,"line":350},[304,1840,523],{"class":430},[304,1842,526],{"class":434},[304,1844,1845,1847,1850,1852,1855,1857,1860],{"class":306,"line":356},[304,1846,1788],{"class":538},[304,1848,1849],{"class":434}," drain ",[304,1851,545],{"class":430},[304,1853,1854],{"class":484}," pipeline",[304,1856,488],{"class":434},[304,1858,1859],{"class":484},"createAxiomDrain",[304,1861,1862],{"class":434},"())\n",[304,1864,1865],{"class":306,"line":361},[304,1866,317],{"emptyLinePlaceholder":316},[304,1868,1869,1871,1873],{"class":306,"line":367},[304,1870,485],{"class":484},[304,1872,488],{"class":434},[304,1874,491],{"class":430},[304,1876,1877,1879,1881,1883,1885,1887,1889,1891,1893],{"class":306,"line":631},[304,1878,497],{"class":496},[304,1880,500],{"class":430},[304,1882,431],{"class":430},[304,1884,505],{"class":496},[304,1886,500],{"class":430},[304,1888,444],{"class":430},[304,1890,512],{"class":405},[304,1892,515],{"class":430},[304,1894,518],{"class":430},[304,1896,1897,1900],{"class":306,"line":649},[304,1898,1899],{"class":434},"  drain",[304,1901,646],{"class":430},[304,1903,1904,1906],{"class":306,"line":666},[304,1905,523],{"class":430},[304,1907,526],{"class":434},[372,1909,1673,1910,1912],{"color":374,"icon":13},[1675,1911,188],{"href":193}," docs for all available drain adapters.",[381,1914,1916],{"id":1915},"next-steps","Next Steps",[1918,1919,1920,1926,1931,1936],"ul",{},[1921,1922,1923,1925],"li",{},[1675,1924,46],{"href":47},": Design comprehensive events with context layering",[1921,1927,1928,1930],{},[1675,1929,188],{"href":193},": Send logs to Axiom, Sentry, PostHog, and more",[1921,1932,1933,1935],{},[1675,1934,81],{"href":82},": Control log volume with head and tail sampling",[1921,1937,1938,1940,1941,1944,1945,1948,1949,1952],{},[1675,1939,51],{"href":52},": Throw errors with ",[286,1942,1943],{},"why",", ",[286,1946,1947],{},"fix",", and ",[286,1950,1951],{},"link"," fields",[1954,1955,1956],"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 .s5tWE, html code.shiki .s5tWE{--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#F07178;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:italic}html pre.shiki code .s6hCs, html code.shiki .s6hCs{--shiki-light:#9C3EDA;--shiki-light-font-style:italic;--shiki-default:#C792EA;--shiki-default-font-style:italic;--shiki-dark:#C792EA;--shiki-dark-font-style:italic}html pre.shiki code .smbvS, html code.shiki .smbvS{--shiki-light:#91B859;--shiki-light-font-style:italic;--shiki-default:#C3E88D;--shiki-default-font-style:italic;--shiki-dark:#C3E88D;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":300,"searchDepth":313,"depth":313,"links":1958},[1959,1964,1965,1966,1967,1968],{"id":383,"depth":313,"text":20,"children":1960},[1961,1962,1963],{"id":387,"depth":320,"text":388},{"id":412,"depth":320,"text":413},{"id":845,"depth":320,"text":846},{"id":957,"depth":313,"text":46},{"id":1280,"depth":313,"text":1281},{"id":1670,"depth":313,"text":76},{"id":1684,"depth":313,"text":1685},{"id":1915,"depth":313,"text":1916},"Wide events and structured errors in Astro server middleware.","md",null,{},{"title":178,"icon":181},{"title":178,"description":1969},"RWao7qFP9oxMBltGKyhbsJEyVL-P7YX9i7trjgh88kw",[1977,1979],{"title":174,"path":175,"stem":176,"description":1978,"icon":89,"children":-1},"Use evlog in standalone TypeScript scripts, CLI tools, queues, cron jobs, and any TypeScript process.",{"title":183,"path":184,"stem":185,"description":1980,"icon":186,"children":-1},"Build your own evlog framework integration using the toolkit API with createMiddlewareLogger, header extraction, AsyncLocalStorage, and the full drain\u002Fenrich\u002Fkeep pipeline.",1775288556957]