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