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