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