[{"data":1,"prerenderedAt":3058},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-nitro":243,"-frameworks-nitro-surround":3053},[4,30,110,159,213,229],{"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},"Frameworks","\u002Fframeworks","2.frameworks",[35,40,45,50,55,60,65,70,75,80,85,90,95,100,105],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Fframeworks\u002Foverview","2.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":41,"path":42,"stem":43,"icon":44},"Nuxt","\u002Fframeworks\u002Fnuxt","2.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":46,"path":47,"stem":48,"icon":49},"Next.js","\u002Fframeworks\u002Fnextjs","2.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":51,"path":52,"stem":53,"icon":54},"SvelteKit","\u002Fframeworks\u002Fsveltekit","2.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":56,"path":57,"stem":58,"icon":59},"Nitro","\u002Fframeworks\u002Fnitro","2.frameworks\u002F04.nitro","i-custom-nitro",{"title":61,"path":62,"stem":63,"icon":64},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","2.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":66,"path":67,"stem":68,"icon":69},"NestJS","\u002Fframeworks\u002Fnestjs","2.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":71,"path":72,"stem":73,"icon":74},"Express","\u002Fframeworks\u002Fexpress","2.frameworks\u002F07.express","i-simple-icons-express",{"title":76,"path":77,"stem":78,"icon":79},"Hono","\u002Fframeworks\u002Fhono","2.frameworks\u002F08.hono","i-simple-icons-hono",{"title":81,"path":82,"stem":83,"icon":84},"Fastify","\u002Fframeworks\u002Ffastify","2.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":86,"path":87,"stem":88,"icon":89},"Elysia","\u002Fframeworks\u002Felysia","2.frameworks\u002F10.elysia","i-custom-elysia",{"title":91,"path":92,"stem":93,"icon":94},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","2.frameworks\u002F11.cloudflare-workers","i-simple-icons-cloudflare",{"title":96,"path":97,"stem":98,"icon":99},"Standalone","\u002Fframeworks\u002Fstandalone","2.frameworks\u002F12.standalone","i-simple-icons-typescript",{"title":101,"path":102,"stem":103,"icon":104},"Astro","\u002Fframeworks\u002Fastro","2.frameworks\u002F13.astro","i-simple-icons-astro",{"title":106,"path":107,"stem":108,"icon":109},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","2.frameworks\u002F14.custom-integration","i-lucide-puzzle",{"title":111,"path":112,"stem":113,"children":114,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[115,120,125,130,135,139,144,149,154],{"title":116,"path":117,"stem":118,"icon":119},"Request Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":121,"path":122,"stem":123,"icon":124},"Wide Events","\u002Fcore-concepts\u002Fwide-events","3.core-concepts\u002F1.wide-events","i-lucide-layers",{"title":126,"path":127,"stem":128,"icon":129},"Structured Errors","\u002Fcore-concepts\u002Fstructured-errors","3.core-concepts\u002F2.structured-errors","i-lucide-shield-alert",{"title":131,"path":132,"stem":133,"icon":134},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F3.best-practices","i-lucide-shield-check",{"title":136,"path":137,"stem":138,"icon":99},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F4.typed-fields",{"title":140,"path":141,"stem":142,"icon":143},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F5.sampling","i-lucide-filter",{"title":145,"path":146,"stem":147,"icon":148},"Client Logging","\u002Fcore-concepts\u002Fclient-logging","3.core-concepts\u002F6.client-logging","i-lucide-monitor",{"title":150,"path":151,"stem":152,"icon":153},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F7.configuration","i-lucide-settings",{"title":155,"path":156,"stem":157,"icon":158},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F8.performance","i-lucide-gauge",{"title":160,"path":161,"stem":162,"children":163,"page":29},"Adapters","\u002Fadapters","4.adapters",[164,168,173,178,183,188,193,198,203,208],{"title":36,"path":165,"stem":166,"icon":167},"\u002Fadapters\u002Foverview","4.adapters\u002F1.overview","i-custom-plug",{"title":169,"path":170,"stem":171,"icon":172},"Browser","\u002Fadapters\u002Fbrowser","4.adapters\u002F10.browser","i-lucide-globe",{"title":174,"path":175,"stem":176,"icon":177},"Axiom","\u002Fadapters\u002Faxiom","4.adapters\u002F2.axiom","i-custom-axiom",{"title":179,"path":180,"stem":181,"icon":182},"OTLP","\u002Fadapters\u002Fotlp","4.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":184,"path":185,"stem":186,"icon":187},"PostHog","\u002Fadapters\u002Fposthog","4.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":189,"path":190,"stem":191,"icon":192},"Sentry","\u002Fadapters\u002Fsentry","4.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":194,"path":195,"stem":196,"icon":197},"Better Stack","\u002Fadapters\u002Fbetter-stack","4.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":199,"path":200,"stem":201,"icon":202},"File System","\u002Fadapters\u002Ffs","4.adapters\u002F7.fs","i-lucide-hard-drive",{"title":204,"path":205,"stem":206,"icon":207},"Custom Adapters","\u002Fadapters\u002Fcustom","4.adapters\u002F8.custom","i-lucide-code",{"title":209,"path":210,"stem":211,"icon":212},"Pipeline","\u002Fadapters\u002Fpipeline","4.adapters\u002F9.pipeline","i-lucide-workflow",{"title":214,"path":215,"stem":216,"children":217,"page":29},"Enrichers","\u002Fenrichers","5.enrichers",[218,221,225],{"title":36,"path":219,"stem":220,"icon":28},"\u002Fenrichers\u002Foverview","5.enrichers\u002F1.overview",{"title":222,"path":223,"stem":224,"icon":109},"Built-in","\u002Fenrichers\u002Fbuilt-in","5.enrichers\u002F2.built-in",{"title":226,"path":227,"stem":228,"icon":207},"Custom","\u002Fenrichers\u002Fcustom","5.enrichers\u002F3.custom",{"title":230,"path":231,"stem":232,"children":233,"page":29},"NuxtHub","\u002Fnuxthub","6.nuxthub",[234,238],{"title":36,"path":235,"stem":236,"icon":237},"\u002Fnuxthub\u002Foverview","6.nuxthub\u002F1.overview","i-lucide-database",{"title":239,"path":240,"stem":241,"icon":242},"Retention","\u002Fnuxthub\u002Fretention","6.nuxthub\u002F2.retention","i-lucide-clock",{"id":244,"title":56,"body":245,"description":3046,"extension":3047,"links":3048,"meta":3049,"navigation":3050,"path":57,"seo":3051,"stem":58,"__hash__":3052},"docs\u002F2.frameworks\u002F04.nitro.md",{"type":246,"value":247,"toc":3027},"minimark",[248,257,344,348,353,419,423,685,688,694,1164,1167,1226,1230,1248,1610,1626,1629,1650,1654,1669,2051,2065,2069,2072,2076,2311,2323,2327,2486,2495,2497,2501,2504,2859,2862,2866,2873,3016,3023],[249,250,251,252,256],"p",{},"evlog provides modules for both Nitro v3 and Nitro v2 (nitropack). The module hooks into the request lifecycle, creating a request-scoped logger accessible via ",[253,254,255],"code",{},"useLogger(event)",", and emits a wide event when the response completes.",[258,259,260],"code-collapse",{},[261,262,268],"pre",{"className":263,"code":264,"filename":265,"language":266,"meta":267,"style":267},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Set up evlog in my Nitro app.\n\n- Install evlog: pnpm add evlog\n- Import the evlog module in nitro.config.ts (evlog\u002Fnitro for v2, evlog\u002Fnitro\u002Fv3 for v3)\n- Configure env.service with your app name\n- Use useLogger(event) in route handlers to build wide events\n- Use log.set() to accumulate context throughout the request\n- Throw errors with createError({ message, status, why, fix })\n- Wide events are auto-emitted when each request completes\n\nDocs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fnitro\nAdapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n","Prompt","txt","",[253,269,270,278,285,291,297,303,309,315,321,327,332,338],{"__ignoreMap":267},[271,272,275],"span",{"class":273,"line":274},"line",1,[271,276,277],{},"Set up evlog in my Nitro app.\n",[271,279,281],{"class":273,"line":280},2,[271,282,284],{"emptyLinePlaceholder":283},true,"\n",[271,286,288],{"class":273,"line":287},3,[271,289,290],{},"- Install evlog: pnpm add evlog\n",[271,292,294],{"class":273,"line":293},4,[271,295,296],{},"- Import the evlog module in nitro.config.ts (evlog\u002Fnitro for v2, evlog\u002Fnitro\u002Fv3 for v3)\n",[271,298,300],{"class":273,"line":299},5,[271,301,302],{},"- Configure env.service with your app name\n",[271,304,306],{"class":273,"line":305},6,[271,307,308],{},"- Use useLogger(event) in route handlers to build wide events\n",[271,310,312],{"class":273,"line":311},7,[271,313,314],{},"- Use log.set() to accumulate context throughout the request\n",[271,316,318],{"class":273,"line":317},8,[271,319,320],{},"- Throw errors with createError({ message, status, why, fix })\n",[271,322,324],{"class":273,"line":323},9,[271,325,326],{},"- Wide events are auto-emitted when each request completes\n",[271,328,330],{"class":273,"line":329},10,[271,331,284],{"emptyLinePlaceholder":283},[271,333,335],{"class":273,"line":334},11,[271,336,337],{},"Docs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fnitro\n",[271,339,341],{"class":273,"line":340},12,[271,342,343],{},"Adapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n",[345,346,20],"h2",{"id":347},"quick-start",[349,350,352],"h3",{"id":351},"_1-install","1. Install",[354,355,356,376,391,405],"code-group",{},[261,357,362],{"className":358,"code":359,"filename":360,"language":361,"meta":267,"style":267},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog\n","pnpm","bash",[253,363,364],{"__ignoreMap":267},[271,365,366,369,373],{"class":273,"line":274},[271,367,360],{"class":368},"sBMFI",[271,370,372],{"class":371},"sfazB"," add",[271,374,375],{"class":371}," evlog\n",[261,377,380],{"className":358,"code":378,"filename":379,"language":361,"meta":267,"style":267},"npm install evlog\n","npm",[253,381,382],{"__ignoreMap":267},[271,383,384,386,389],{"class":273,"line":274},[271,385,379],{"class":368},[271,387,388],{"class":371}," install",[271,390,375],{"class":371},[261,392,395],{"className":358,"code":393,"filename":394,"language":361,"meta":267,"style":267},"yarn add evlog\n","yarn",[253,396,397],{"__ignoreMap":267},[271,398,399,401,403],{"class":273,"line":274},[271,400,394],{"class":368},[271,402,372],{"class":371},[271,404,375],{"class":371},[261,406,409],{"className":358,"code":407,"filename":408,"language":361,"meta":267,"style":267},"bun add evlog\n","bun",[253,410,411],{"__ignoreMap":267},[271,412,413,415,417],{"class":273,"line":274},[271,414,408],{"class":368},[271,416,372],{"class":371},[271,418,375],{"class":371},[349,420,422],{"id":421},"_2-add-the-module","2. Add the module",[354,424,425,572],{},[261,426,431],{"className":427,"code":428,"filename":429,"language":430,"meta":267,"style":267},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineConfig } from 'nitro'\nimport evlog from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineConfig({\n  modules: [\n    evlog({\n      env: { service: 'my-app' },\n    }),\n  ],\n})\n","nitro.config.ts (v3)","typescript",[253,432,433,462,479,483,500,512,521,546,557,564],{"__ignoreMap":267},[271,434,435,439,443,447,450,453,456,459],{"class":273,"line":274},[271,436,438],{"class":437},"s7zQu","import",[271,440,442],{"class":441},"sMK4o"," {",[271,444,446],{"class":445},"sTEyZ"," defineConfig",[271,448,449],{"class":441}," }",[271,451,452],{"class":437}," from",[271,454,455],{"class":441}," '",[271,457,458],{"class":371},"nitro",[271,460,461],{"class":441},"'\n",[271,463,464,466,469,472,474,477],{"class":273,"line":280},[271,465,438],{"class":437},[271,467,468],{"class":445}," evlog ",[271,470,471],{"class":437},"from",[271,473,455],{"class":441},[271,475,476],{"class":371},"evlog\u002Fnitro\u002Fv3",[271,478,461],{"class":441},[271,480,481],{"class":273,"line":287},[271,482,284],{"emptyLinePlaceholder":283},[271,484,485,488,491,494,497],{"class":273,"line":293},[271,486,487],{"class":437},"export",[271,489,490],{"class":437}," default",[271,492,446],{"class":493},"s2Zo4",[271,495,496],{"class":445},"(",[271,498,499],{"class":441},"{\n",[271,501,502,506,509],{"class":273,"line":299},[271,503,505],{"class":504},"swJcz","  modules",[271,507,508],{"class":441},":",[271,510,511],{"class":445}," [\n",[271,513,514,517,519],{"class":273,"line":305},[271,515,516],{"class":493},"    evlog",[271,518,496],{"class":445},[271,520,499],{"class":441},[271,522,523,526,528,530,533,535,537,540,543],{"class":273,"line":311},[271,524,525],{"class":504},"      env",[271,527,508],{"class":441},[271,529,442],{"class":441},[271,531,532],{"class":504}," service",[271,534,508],{"class":441},[271,536,455],{"class":441},[271,538,539],{"class":371},"my-app",[271,541,542],{"class":441},"'",[271,544,545],{"class":441}," },\n",[271,547,548,551,554],{"class":273,"line":317},[271,549,550],{"class":441},"    }",[271,552,553],{"class":445},")",[271,555,556],{"class":441},",\n",[271,558,559,562],{"class":273,"line":323},[271,560,561],{"class":445},"  ]",[271,563,556],{"class":441},[271,565,566,569],{"class":273,"line":329},[271,567,568],{"class":441},"}",[271,570,571],{"class":445},")\n",[261,573,576],{"className":427,"code":574,"filename":575,"language":430,"meta":267,"style":267},"import { defineNitroConfig } from 'nitropack\u002Fconfig'\nimport evlog from 'evlog\u002Fnitro'\n\nexport default defineNitroConfig({\n  modules: [\n    evlog({\n      env: { service: 'my-app' },\n    }),\n  ],\n})\n","nitro.config.ts (v2)",[253,577,578,598,613,617,629,637,645,665,673,679],{"__ignoreMap":267},[271,579,580,582,584,587,589,591,593,596],{"class":273,"line":274},[271,581,438],{"class":437},[271,583,442],{"class":441},[271,585,586],{"class":445}," defineNitroConfig",[271,588,449],{"class":441},[271,590,452],{"class":437},[271,592,455],{"class":441},[271,594,595],{"class":371},"nitropack\u002Fconfig",[271,597,461],{"class":441},[271,599,600,602,604,606,608,611],{"class":273,"line":280},[271,601,438],{"class":437},[271,603,468],{"class":445},[271,605,471],{"class":437},[271,607,455],{"class":441},[271,609,610],{"class":371},"evlog\u002Fnitro",[271,612,461],{"class":441},[271,614,615],{"class":273,"line":287},[271,616,284],{"emptyLinePlaceholder":283},[271,618,619,621,623,625,627],{"class":273,"line":293},[271,620,487],{"class":437},[271,622,490],{"class":437},[271,624,586],{"class":493},[271,626,496],{"class":445},[271,628,499],{"class":441},[271,630,631,633,635],{"class":273,"line":299},[271,632,505],{"class":504},[271,634,508],{"class":441},[271,636,511],{"class":445},[271,638,639,641,643],{"class":273,"line":305},[271,640,516],{"class":493},[271,642,496],{"class":445},[271,644,499],{"class":441},[271,646,647,649,651,653,655,657,659,661,663],{"class":273,"line":311},[271,648,525],{"class":504},[271,650,508],{"class":441},[271,652,442],{"class":441},[271,654,532],{"class":504},[271,656,508],{"class":441},[271,658,455],{"class":441},[271,660,539],{"class":371},[271,662,542],{"class":441},[271,664,545],{"class":441},[271,666,667,669,671],{"class":273,"line":317},[271,668,550],{"class":441},[271,670,553],{"class":445},[271,672,556],{"class":441},[271,674,675,677],{"class":273,"line":323},[271,676,561],{"class":445},[271,678,556],{"class":441},[271,680,681,683],{"class":273,"line":329},[271,682,568],{"class":441},[271,684,571],{"class":445},[345,686,121],{"id":687},"wide-events",[249,689,690,691,693],{},"Build up context progressively throughout a request with ",[253,692,255],{},". evlog emits a single wide event when the request completes.",[354,695,696,945],{},[261,697,700],{"className":427,"code":698,"filename":699,"language":430,"meta":267,"style":267},"import { defineHandler } from 'nitro\u002Fh3'\nimport { useLogger } from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineHandler(async (event) => {\n  const log = useLogger(event)\n  const body = await readBody(event)\n\n  log.set({ user: { id: body.userId } })\n  log.set({ cart: { items: body.items.length, total: body.total } })\n\n  return { success: true }\n})\n","routes\u002Fapi\u002Fcheckout.post.ts (v3)",[253,701,702,722,741,745,774,793,814,818,859,916,920,939],{"__ignoreMap":267},[271,703,704,706,708,711,713,715,717,720],{"class":273,"line":274},[271,705,438],{"class":437},[271,707,442],{"class":441},[271,709,710],{"class":445}," defineHandler",[271,712,449],{"class":441},[271,714,452],{"class":437},[271,716,455],{"class":441},[271,718,719],{"class":371},"nitro\u002Fh3",[271,721,461],{"class":441},[271,723,724,726,728,731,733,735,737,739],{"class":273,"line":280},[271,725,438],{"class":437},[271,727,442],{"class":441},[271,729,730],{"class":445}," useLogger",[271,732,449],{"class":441},[271,734,452],{"class":437},[271,736,455],{"class":441},[271,738,476],{"class":371},[271,740,461],{"class":441},[271,742,743],{"class":273,"line":287},[271,744,284],{"emptyLinePlaceholder":283},[271,746,747,749,751,753,755,759,762,766,768,771],{"class":273,"line":293},[271,748,487],{"class":437},[271,750,490],{"class":437},[271,752,710],{"class":493},[271,754,496],{"class":445},[271,756,758],{"class":757},"spNyl","async",[271,760,761],{"class":441}," (",[271,763,765],{"class":764},"sHdIc","event",[271,767,553],{"class":441},[271,769,770],{"class":757}," =>",[271,772,773],{"class":441}," {\n",[271,775,776,779,782,785,787,789,791],{"class":273,"line":299},[271,777,778],{"class":757},"  const",[271,780,781],{"class":445}," log",[271,783,784],{"class":441}," =",[271,786,730],{"class":493},[271,788,496],{"class":504},[271,790,765],{"class":445},[271,792,571],{"class":504},[271,794,795,797,800,802,805,808,810,812],{"class":273,"line":305},[271,796,778],{"class":757},[271,798,799],{"class":445}," body",[271,801,784],{"class":441},[271,803,804],{"class":437}," await",[271,806,807],{"class":493}," readBody",[271,809,496],{"class":504},[271,811,765],{"class":445},[271,813,571],{"class":504},[271,815,816],{"class":273,"line":311},[271,817,284],{"emptyLinePlaceholder":283},[271,819,820,823,826,829,831,834,837,839,841,844,846,848,850,853,855,857],{"class":273,"line":317},[271,821,822],{"class":445},"  log",[271,824,825],{"class":441},".",[271,827,828],{"class":493},"set",[271,830,496],{"class":504},[271,832,833],{"class":441},"{",[271,835,836],{"class":504}," user",[271,838,508],{"class":441},[271,840,442],{"class":441},[271,842,843],{"class":504}," id",[271,845,508],{"class":441},[271,847,799],{"class":445},[271,849,825],{"class":441},[271,851,852],{"class":445},"userId",[271,854,449],{"class":441},[271,856,449],{"class":441},[271,858,571],{"class":504},[271,860,861,863,865,867,869,871,874,876,878,881,883,885,887,890,892,895,898,901,903,905,907,910,912,914],{"class":273,"line":323},[271,862,822],{"class":445},[271,864,825],{"class":441},[271,866,828],{"class":493},[271,868,496],{"class":504},[271,870,833],{"class":441},[271,872,873],{"class":504}," cart",[271,875,508],{"class":441},[271,877,442],{"class":441},[271,879,880],{"class":504}," items",[271,882,508],{"class":441},[271,884,799],{"class":445},[271,886,825],{"class":441},[271,888,889],{"class":445},"items",[271,891,825],{"class":441},[271,893,894],{"class":445},"length",[271,896,897],{"class":441},",",[271,899,900],{"class":504}," total",[271,902,508],{"class":441},[271,904,799],{"class":445},[271,906,825],{"class":441},[271,908,909],{"class":445},"total",[271,911,449],{"class":441},[271,913,449],{"class":441},[271,915,571],{"class":504},[271,917,918],{"class":273,"line":329},[271,919,284],{"emptyLinePlaceholder":283},[271,921,922,925,927,930,932,936],{"class":273,"line":334},[271,923,924],{"class":437},"  return",[271,926,442],{"class":441},[271,928,929],{"class":504}," success",[271,931,508],{"class":441},[271,933,935],{"class":934},"sfNiH"," true",[271,937,938],{"class":441}," }\n",[271,940,941,943],{"class":273,"line":340},[271,942,568],{"class":441},[271,944,571],{"class":445},[261,946,949],{"className":427,"code":947,"filename":948,"language":430,"meta":267,"style":267},"import { defineEventHandler, readBody } from 'h3'\nimport { useLogger } from 'evlog\u002Fnitro'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const body = await readBody(event)\n\n  log.set({ user: { id: body.userId } })\n  log.set({ cart: { items: body.items.length, total: body.total } })\n\n  return { success: true }\n})\n","routes\u002Fapi\u002Fcheckout.post.ts (v2)",[253,950,951,974,992,996,1018,1034,1052,1056,1090,1140,1144,1158],{"__ignoreMap":267},[271,952,953,955,957,960,962,964,966,968,970,972],{"class":273,"line":274},[271,954,438],{"class":437},[271,956,442],{"class":441},[271,958,959],{"class":445}," defineEventHandler",[271,961,897],{"class":441},[271,963,807],{"class":445},[271,965,449],{"class":441},[271,967,452],{"class":437},[271,969,455],{"class":441},[271,971,349],{"class":371},[271,973,461],{"class":441},[271,975,976,978,980,982,984,986,988,990],{"class":273,"line":280},[271,977,438],{"class":437},[271,979,442],{"class":441},[271,981,730],{"class":445},[271,983,449],{"class":441},[271,985,452],{"class":437},[271,987,455],{"class":441},[271,989,610],{"class":371},[271,991,461],{"class":441},[271,993,994],{"class":273,"line":287},[271,995,284],{"emptyLinePlaceholder":283},[271,997,998,1000,1002,1004,1006,1008,1010,1012,1014,1016],{"class":273,"line":293},[271,999,487],{"class":437},[271,1001,490],{"class":437},[271,1003,959],{"class":493},[271,1005,496],{"class":445},[271,1007,758],{"class":757},[271,1009,761],{"class":441},[271,1011,765],{"class":764},[271,1013,553],{"class":441},[271,1015,770],{"class":757},[271,1017,773],{"class":441},[271,1019,1020,1022,1024,1026,1028,1030,1032],{"class":273,"line":299},[271,1021,778],{"class":757},[271,1023,781],{"class":445},[271,1025,784],{"class":441},[271,1027,730],{"class":493},[271,1029,496],{"class":504},[271,1031,765],{"class":445},[271,1033,571],{"class":504},[271,1035,1036,1038,1040,1042,1044,1046,1048,1050],{"class":273,"line":305},[271,1037,778],{"class":757},[271,1039,799],{"class":445},[271,1041,784],{"class":441},[271,1043,804],{"class":437},[271,1045,807],{"class":493},[271,1047,496],{"class":504},[271,1049,765],{"class":445},[271,1051,571],{"class":504},[271,1053,1054],{"class":273,"line":311},[271,1055,284],{"emptyLinePlaceholder":283},[271,1057,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088],{"class":273,"line":317},[271,1059,822],{"class":445},[271,1061,825],{"class":441},[271,1063,828],{"class":493},[271,1065,496],{"class":504},[271,1067,833],{"class":441},[271,1069,836],{"class":504},[271,1071,508],{"class":441},[271,1073,442],{"class":441},[271,1075,843],{"class":504},[271,1077,508],{"class":441},[271,1079,799],{"class":445},[271,1081,825],{"class":441},[271,1083,852],{"class":445},[271,1085,449],{"class":441},[271,1087,449],{"class":441},[271,1089,571],{"class":504},[271,1091,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138],{"class":273,"line":323},[271,1093,822],{"class":445},[271,1095,825],{"class":441},[271,1097,828],{"class":493},[271,1099,496],{"class":504},[271,1101,833],{"class":441},[271,1103,873],{"class":504},[271,1105,508],{"class":441},[271,1107,442],{"class":441},[271,1109,880],{"class":504},[271,1111,508],{"class":441},[271,1113,799],{"class":445},[271,1115,825],{"class":441},[271,1117,889],{"class":445},[271,1119,825],{"class":441},[271,1121,894],{"class":445},[271,1123,897],{"class":441},[271,1125,900],{"class":504},[271,1127,508],{"class":441},[271,1129,799],{"class":445},[271,1131,825],{"class":441},[271,1133,909],{"class":445},[271,1135,449],{"class":441},[271,1137,449],{"class":441},[271,1139,571],{"class":504},[271,1141,1142],{"class":273,"line":329},[271,1143,284],{"emptyLinePlaceholder":283},[271,1145,1146,1148,1150,1152,1154,1156],{"class":273,"line":334},[271,1147,924],{"class":437},[271,1149,442],{"class":441},[271,1151,929],{"class":504},[271,1153,508],{"class":441},[271,1155,935],{"class":934},[271,1157,938],{"class":441},[271,1159,1160,1162],{"class":273,"line":340},[271,1161,568],{"class":441},[271,1163,571],{"class":445},[249,1165,1166],{},"One request, one log line with all context:",[261,1168,1171],{"className":358,"code":1169,"filename":1170,"language":361,"meta":267,"style":267},"10:23:45 INFO [my-app] POST \u002Fapi\u002Fcheckout 200 in 145ms\n  ├─ user: id=usr_123\n  ├─ cart: items=3 total=14999\n  └─ requestId: a1b2c3d4-...\n","Terminal output",[253,1172,1173,1184,1195,1215],{"__ignoreMap":267},[271,1174,1175,1178,1181],{"class":273,"line":274},[271,1176,1177],{"class":368},"10:23:45",[271,1179,1180],{"class":371}," INFO",[271,1182,1183],{"class":445}," [my-app] POST \u002Fapi\u002Fcheckout 200 in 145ms\n",[271,1185,1186,1189,1192],{"class":273,"line":280},[271,1187,1188],{"class":368},"  ├─",[271,1190,1191],{"class":371}," user:",[271,1193,1194],{"class":371}," id=usr_123\n",[271,1196,1197,1199,1202,1205,1209,1212],{"class":273,"line":287},[271,1198,1188],{"class":368},[271,1200,1201],{"class":371}," cart:",[271,1203,1204],{"class":371}," items=",[271,1206,1208],{"class":1207},"sbssI","3",[271,1210,1211],{"class":371}," total=",[271,1213,1214],{"class":1207},"14999\n",[271,1216,1217,1220,1223],{"class":273,"line":293},[271,1218,1219],{"class":368},"  └─",[271,1221,1222],{"class":371}," requestId:",[271,1224,1225],{"class":371}," a1b2c3d4-...\n",[345,1227,1229],{"id":1228},"error-handling","Error Handling",[249,1231,1232,1235,1236,1239,1240,1243,1244,1247],{},[253,1233,1234],{},"createError"," produces structured errors with ",[253,1237,1238],{},"why",", ",[253,1241,1242],{},"fix",", and ",[253,1245,1246],{},"link"," fields that help both humans and AI agents understand what went wrong.",[354,1249,1250,1428],{},[261,1251,1254],{"className":427,"code":1252,"filename":1253,"language":430,"meta":267,"style":267},"import { defineHandler } from 'nitro\u002Fh3'\nimport { useLogger, createError } from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineHandler(async (event) => {\n  const log = useLogger(event)\n\n  throw createError({\n    status: 402,\n    message: 'Payment failed',\n    why: 'Card declined by issuer',\n    fix: 'Try a different payment method',\n  })\n})\n","routes\u002Fapi\u002Fpayment.post.ts (v3)",[253,1255,1256,1274,1297,1301,1323,1339,1343,1354,1366,1382,1398,1414,1421],{"__ignoreMap":267},[271,1257,1258,1260,1262,1264,1266,1268,1270,1272],{"class":273,"line":274},[271,1259,438],{"class":437},[271,1261,442],{"class":441},[271,1263,710],{"class":445},[271,1265,449],{"class":441},[271,1267,452],{"class":437},[271,1269,455],{"class":441},[271,1271,719],{"class":371},[271,1273,461],{"class":441},[271,1275,1276,1278,1280,1282,1284,1287,1289,1291,1293,1295],{"class":273,"line":280},[271,1277,438],{"class":437},[271,1279,442],{"class":441},[271,1281,730],{"class":445},[271,1283,897],{"class":441},[271,1285,1286],{"class":445}," createError",[271,1288,449],{"class":441},[271,1290,452],{"class":437},[271,1292,455],{"class":441},[271,1294,476],{"class":371},[271,1296,461],{"class":441},[271,1298,1299],{"class":273,"line":287},[271,1300,284],{"emptyLinePlaceholder":283},[271,1302,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321],{"class":273,"line":293},[271,1304,487],{"class":437},[271,1306,490],{"class":437},[271,1308,710],{"class":493},[271,1310,496],{"class":445},[271,1312,758],{"class":757},[271,1314,761],{"class":441},[271,1316,765],{"class":764},[271,1318,553],{"class":441},[271,1320,770],{"class":757},[271,1322,773],{"class":441},[271,1324,1325,1327,1329,1331,1333,1335,1337],{"class":273,"line":299},[271,1326,778],{"class":757},[271,1328,781],{"class":445},[271,1330,784],{"class":441},[271,1332,730],{"class":493},[271,1334,496],{"class":504},[271,1336,765],{"class":445},[271,1338,571],{"class":504},[271,1340,1341],{"class":273,"line":305},[271,1342,284],{"emptyLinePlaceholder":283},[271,1344,1345,1348,1350,1352],{"class":273,"line":311},[271,1346,1347],{"class":437},"  throw",[271,1349,1286],{"class":493},[271,1351,496],{"class":504},[271,1353,499],{"class":441},[271,1355,1356,1359,1361,1364],{"class":273,"line":317},[271,1357,1358],{"class":504},"    status",[271,1360,508],{"class":441},[271,1362,1363],{"class":1207}," 402",[271,1365,556],{"class":441},[271,1367,1368,1371,1373,1375,1378,1380],{"class":273,"line":323},[271,1369,1370],{"class":504},"    message",[271,1372,508],{"class":441},[271,1374,455],{"class":441},[271,1376,1377],{"class":371},"Payment failed",[271,1379,542],{"class":441},[271,1381,556],{"class":441},[271,1383,1384,1387,1389,1391,1394,1396],{"class":273,"line":329},[271,1385,1386],{"class":504},"    why",[271,1388,508],{"class":441},[271,1390,455],{"class":441},[271,1392,1393],{"class":371},"Card declined by issuer",[271,1395,542],{"class":441},[271,1397,556],{"class":441},[271,1399,1400,1403,1405,1407,1410,1412],{"class":273,"line":334},[271,1401,1402],{"class":504},"    fix",[271,1404,508],{"class":441},[271,1406,455],{"class":441},[271,1408,1409],{"class":371},"Try a different payment method",[271,1411,542],{"class":441},[271,1413,556],{"class":441},[271,1415,1416,1419],{"class":273,"line":340},[271,1417,1418],{"class":441},"  }",[271,1420,571],{"class":504},[271,1422,1424,1426],{"class":273,"line":1423},13,[271,1425,568],{"class":441},[271,1427,571],{"class":445},[261,1429,1432],{"className":427,"code":1430,"filename":1431,"language":430,"meta":267,"style":267},"import { defineEventHandler } from 'h3'\nimport { useLogger } from 'evlog\u002Fnitro'\nimport { createError } from 'evlog'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n\n  throw createError({\n    status: 402,\n    message: 'Payment failed',\n    why: 'Card declined by issuer',\n    fix: 'Try a different payment method',\n  })\n})\n","routes\u002Fapi\u002Fpayment.post.ts (v2)",[253,1433,1434,1452,1470,1489,1493,1515,1531,1535,1545,1555,1569,1583,1597,1603],{"__ignoreMap":267},[271,1435,1436,1438,1440,1442,1444,1446,1448,1450],{"class":273,"line":274},[271,1437,438],{"class":437},[271,1439,442],{"class":441},[271,1441,959],{"class":445},[271,1443,449],{"class":441},[271,1445,452],{"class":437},[271,1447,455],{"class":441},[271,1449,349],{"class":371},[271,1451,461],{"class":441},[271,1453,1454,1456,1458,1460,1462,1464,1466,1468],{"class":273,"line":280},[271,1455,438],{"class":437},[271,1457,442],{"class":441},[271,1459,730],{"class":445},[271,1461,449],{"class":441},[271,1463,452],{"class":437},[271,1465,455],{"class":441},[271,1467,610],{"class":371},[271,1469,461],{"class":441},[271,1471,1472,1474,1476,1478,1480,1482,1484,1487],{"class":273,"line":287},[271,1473,438],{"class":437},[271,1475,442],{"class":441},[271,1477,1286],{"class":445},[271,1479,449],{"class":441},[271,1481,452],{"class":437},[271,1483,455],{"class":441},[271,1485,1486],{"class":371},"evlog",[271,1488,461],{"class":441},[271,1490,1491],{"class":273,"line":293},[271,1492,284],{"emptyLinePlaceholder":283},[271,1494,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513],{"class":273,"line":299},[271,1496,487],{"class":437},[271,1498,490],{"class":437},[271,1500,959],{"class":493},[271,1502,496],{"class":445},[271,1504,758],{"class":757},[271,1506,761],{"class":441},[271,1508,765],{"class":764},[271,1510,553],{"class":441},[271,1512,770],{"class":757},[271,1514,773],{"class":441},[271,1516,1517,1519,1521,1523,1525,1527,1529],{"class":273,"line":305},[271,1518,778],{"class":757},[271,1520,781],{"class":445},[271,1522,784],{"class":441},[271,1524,730],{"class":493},[271,1526,496],{"class":504},[271,1528,765],{"class":445},[271,1530,571],{"class":504},[271,1532,1533],{"class":273,"line":311},[271,1534,284],{"emptyLinePlaceholder":283},[271,1536,1537,1539,1541,1543],{"class":273,"line":317},[271,1538,1347],{"class":437},[271,1540,1286],{"class":493},[271,1542,496],{"class":504},[271,1544,499],{"class":441},[271,1546,1547,1549,1551,1553],{"class":273,"line":323},[271,1548,1358],{"class":504},[271,1550,508],{"class":441},[271,1552,1363],{"class":1207},[271,1554,556],{"class":441},[271,1556,1557,1559,1561,1563,1565,1567],{"class":273,"line":329},[271,1558,1370],{"class":504},[271,1560,508],{"class":441},[271,1562,455],{"class":441},[271,1564,1377],{"class":371},[271,1566,542],{"class":441},[271,1568,556],{"class":441},[271,1570,1571,1573,1575,1577,1579,1581],{"class":273,"line":334},[271,1572,1386],{"class":504},[271,1574,508],{"class":441},[271,1576,455],{"class":441},[271,1578,1393],{"class":371},[271,1580,542],{"class":441},[271,1582,556],{"class":441},[271,1584,1585,1587,1589,1591,1593,1595],{"class":273,"line":340},[271,1586,1402],{"class":504},[271,1588,508],{"class":441},[271,1590,455],{"class":441},[271,1592,1409],{"class":371},[271,1594,542],{"class":441},[271,1596,556],{"class":441},[271,1598,1599,1601],{"class":273,"line":1423},[271,1600,1418],{"class":441},[271,1602,571],{"class":504},[271,1604,1606,1608],{"class":273,"line":1605},14,[271,1607,568],{"class":441},[271,1609,571],{"class":445},[1611,1612,1614,1615,1617,1618,1620,1621,1617,1623,1625],"callout",{"color":1613,"icon":13},"info","In Nitro v3, import ",[253,1616,1234],{}," from ",[253,1619,476],{}," - it wraps the Nitro error handler. In Nitro v2, import ",[253,1622,1234],{},[253,1624,1486],{}," directly.",[345,1627,150],{"id":1628},"configuration",[249,1630,1631,1632,1636,1637,1239,1640,1239,1643,1239,1646,1649],{},"See the ",[1633,1634,1635],"a",{"href":151},"Configuration reference"," for all available options (",[253,1638,1639],{},"enabled",[253,1641,1642],{},"pretty",[253,1644,1645],{},"silent",[253,1647,1648],{},"sampling",", etc.).",[349,1651,1653],{"id":1652},"route-filtering","Route Filtering",[249,1655,1656,1657,1660,1661,1664,1665,1668],{},"Use ",[253,1658,1659],{},"include"," and ",[253,1662,1663],{},"exclude"," to control which routes are logged, and ",[253,1666,1667],{},"routes"," to assign different service names to different route groups:",[354,1670,1671,1868],{},[261,1672,1674],{"className":427,"code":1673,"filename":429,"language":430,"meta":267,"style":267},"import { defineConfig } from 'nitro'\nimport evlog from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineConfig({\n  modules: [\n    evlog({\n      include: ['\u002Fapi\u002F**'],\n      exclude: ['\u002Fapi\u002Fhealth'],\n      routes: {\n        '\u002Fapi\u002Fauth\u002F**': { service: 'auth-service' },\n        '\u002Fapi\u002Fpayment\u002F**': { service: 'payment-service' },\n      },\n    })\n  ],\n})\n",[253,1675,1676,1694,1708,1712,1724,1732,1740,1762,1782,1791,1818,1844,1849,1855,1861],{"__ignoreMap":267},[271,1677,1678,1680,1682,1684,1686,1688,1690,1692],{"class":273,"line":274},[271,1679,438],{"class":437},[271,1681,442],{"class":441},[271,1683,446],{"class":445},[271,1685,449],{"class":441},[271,1687,452],{"class":437},[271,1689,455],{"class":441},[271,1691,458],{"class":371},[271,1693,461],{"class":441},[271,1695,1696,1698,1700,1702,1704,1706],{"class":273,"line":280},[271,1697,438],{"class":437},[271,1699,468],{"class":445},[271,1701,471],{"class":437},[271,1703,455],{"class":441},[271,1705,476],{"class":371},[271,1707,461],{"class":441},[271,1709,1710],{"class":273,"line":287},[271,1711,284],{"emptyLinePlaceholder":283},[271,1713,1714,1716,1718,1720,1722],{"class":273,"line":293},[271,1715,487],{"class":437},[271,1717,490],{"class":437},[271,1719,446],{"class":493},[271,1721,496],{"class":445},[271,1723,499],{"class":441},[271,1725,1726,1728,1730],{"class":273,"line":299},[271,1727,505],{"class":504},[271,1729,508],{"class":441},[271,1731,511],{"class":445},[271,1733,1734,1736,1738],{"class":273,"line":305},[271,1735,516],{"class":493},[271,1737,496],{"class":445},[271,1739,499],{"class":441},[271,1741,1742,1745,1747,1750,1752,1755,1757,1760],{"class":273,"line":311},[271,1743,1744],{"class":504},"      include",[271,1746,508],{"class":441},[271,1748,1749],{"class":445}," [",[271,1751,542],{"class":441},[271,1753,1754],{"class":371},"\u002Fapi\u002F**",[271,1756,542],{"class":441},[271,1758,1759],{"class":445},"]",[271,1761,556],{"class":441},[271,1763,1764,1767,1769,1771,1773,1776,1778,1780],{"class":273,"line":317},[271,1765,1766],{"class":504},"      exclude",[271,1768,508],{"class":441},[271,1770,1749],{"class":445},[271,1772,542],{"class":441},[271,1774,1775],{"class":371},"\u002Fapi\u002Fhealth",[271,1777,542],{"class":441},[271,1779,1759],{"class":445},[271,1781,556],{"class":441},[271,1783,1784,1787,1789],{"class":273,"line":323},[271,1785,1786],{"class":504},"      routes",[271,1788,508],{"class":441},[271,1790,773],{"class":441},[271,1792,1793,1796,1799,1801,1803,1805,1807,1809,1811,1814,1816],{"class":273,"line":329},[271,1794,1795],{"class":441},"        '",[271,1797,1798],{"class":504},"\u002Fapi\u002Fauth\u002F**",[271,1800,542],{"class":441},[271,1802,508],{"class":441},[271,1804,442],{"class":441},[271,1806,532],{"class":504},[271,1808,508],{"class":441},[271,1810,455],{"class":441},[271,1812,1813],{"class":371},"auth-service",[271,1815,542],{"class":441},[271,1817,545],{"class":441},[271,1819,1820,1822,1825,1827,1829,1831,1833,1835,1837,1840,1842],{"class":273,"line":334},[271,1821,1795],{"class":441},[271,1823,1824],{"class":504},"\u002Fapi\u002Fpayment\u002F**",[271,1826,542],{"class":441},[271,1828,508],{"class":441},[271,1830,442],{"class":441},[271,1832,532],{"class":504},[271,1834,508],{"class":441},[271,1836,455],{"class":441},[271,1838,1839],{"class":371},"payment-service",[271,1841,542],{"class":441},[271,1843,545],{"class":441},[271,1845,1846],{"class":273,"line":340},[271,1847,1848],{"class":441},"      },\n",[271,1850,1851,1853],{"class":273,"line":1423},[271,1852,550],{"class":441},[271,1854,571],{"class":445},[271,1856,1857,1859],{"class":273,"line":1605},[271,1858,561],{"class":445},[271,1860,556],{"class":441},[271,1862,1864,1866],{"class":273,"line":1863},15,[271,1865,568],{"class":441},[271,1867,571],{"class":445},[261,1869,1871],{"className":427,"code":1870,"filename":575,"language":430,"meta":267,"style":267},"import { defineNitroConfig } from 'nitropack\u002Fconfig'\nimport evlog from 'evlog\u002Fnitro'\n\nexport default defineNitroConfig({\n  modules: [\n    evlog({\n      include: ['\u002Fapi\u002F**'],\n      exclude: ['\u002Fapi\u002Fhealth'],\n      routes: {\n        '\u002Fapi\u002Fauth\u002F**': { service: 'auth-service' },\n        '\u002Fapi\u002Fpayment\u002F**': { service: 'payment-service' },\n      },\n    })\n  ],\n})\n",[253,1872,1873,1891,1905,1909,1921,1929,1937,1955,1973,1981,2005,2029,2033,2039,2045],{"__ignoreMap":267},[271,1874,1875,1877,1879,1881,1883,1885,1887,1889],{"class":273,"line":274},[271,1876,438],{"class":437},[271,1878,442],{"class":441},[271,1880,586],{"class":445},[271,1882,449],{"class":441},[271,1884,452],{"class":437},[271,1886,455],{"class":441},[271,1888,595],{"class":371},[271,1890,461],{"class":441},[271,1892,1893,1895,1897,1899,1901,1903],{"class":273,"line":280},[271,1894,438],{"class":437},[271,1896,468],{"class":445},[271,1898,471],{"class":437},[271,1900,455],{"class":441},[271,1902,610],{"class":371},[271,1904,461],{"class":441},[271,1906,1907],{"class":273,"line":287},[271,1908,284],{"emptyLinePlaceholder":283},[271,1910,1911,1913,1915,1917,1919],{"class":273,"line":293},[271,1912,487],{"class":437},[271,1914,490],{"class":437},[271,1916,586],{"class":493},[271,1918,496],{"class":445},[271,1920,499],{"class":441},[271,1922,1923,1925,1927],{"class":273,"line":299},[271,1924,505],{"class":504},[271,1926,508],{"class":441},[271,1928,511],{"class":445},[271,1930,1931,1933,1935],{"class":273,"line":305},[271,1932,516],{"class":493},[271,1934,496],{"class":445},[271,1936,499],{"class":441},[271,1938,1939,1941,1943,1945,1947,1949,1951,1953],{"class":273,"line":311},[271,1940,1744],{"class":504},[271,1942,508],{"class":441},[271,1944,1749],{"class":445},[271,1946,542],{"class":441},[271,1948,1754],{"class":371},[271,1950,542],{"class":441},[271,1952,1759],{"class":445},[271,1954,556],{"class":441},[271,1956,1957,1959,1961,1963,1965,1967,1969,1971],{"class":273,"line":317},[271,1958,1766],{"class":504},[271,1960,508],{"class":441},[271,1962,1749],{"class":445},[271,1964,542],{"class":441},[271,1966,1775],{"class":371},[271,1968,542],{"class":441},[271,1970,1759],{"class":445},[271,1972,556],{"class":441},[271,1974,1975,1977,1979],{"class":273,"line":323},[271,1976,1786],{"class":504},[271,1978,508],{"class":441},[271,1980,773],{"class":441},[271,1982,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003],{"class":273,"line":329},[271,1984,1795],{"class":441},[271,1986,1798],{"class":504},[271,1988,542],{"class":441},[271,1990,508],{"class":441},[271,1992,442],{"class":441},[271,1994,532],{"class":504},[271,1996,508],{"class":441},[271,1998,455],{"class":441},[271,2000,1813],{"class":371},[271,2002,542],{"class":441},[271,2004,545],{"class":441},[271,2006,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027],{"class":273,"line":334},[271,2008,1795],{"class":441},[271,2010,1824],{"class":504},[271,2012,542],{"class":441},[271,2014,508],{"class":441},[271,2016,442],{"class":441},[271,2018,532],{"class":504},[271,2020,508],{"class":441},[271,2022,455],{"class":441},[271,2024,1839],{"class":371},[271,2026,542],{"class":441},[271,2028,545],{"class":441},[271,2030,2031],{"class":273,"line":340},[271,2032,1848],{"class":441},[271,2034,2035,2037],{"class":273,"line":1423},[271,2036,550],{"class":441},[271,2038,571],{"class":445},[271,2040,2041,2043],{"class":273,"line":1605},[271,2042,561],{"class":445},[271,2044,556],{"class":441},[271,2046,2047,2049],{"class":273,"line":1863},[271,2048,568],{"class":441},[271,2050,571],{"class":445},[1611,2052,2055,2059,2060,1660,2062,2064],{"color":2053,"icon":2054},"warning","i-lucide-alert-triangle",[2056,2057,2058],"strong",{},"Exclusions take precedence."," If a path matches both ",[253,2061,1659],{},[253,2063,1663],{},", it will be excluded.",[345,2066,2068],{"id":2067},"drain-enrichers","Drain & Enrichers",[249,2070,2071],{},"Use Nitro plugin hooks to send logs to external services and enrich them with additional context.",[349,2073,2075],{"id":2074},"drain-plugin","Drain Plugin",[261,2077,2080],{"className":427,"code":2078,"filename":2079,"language":430,"meta":267,"style":267},"import type { DrainContext } from 'evlog'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createDrainPipeline } from 'evlog\u002Fpipeline'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>({\n  batch: { size: 50, intervalMs: 5000 },\n  retry: { maxAttempts: 3 },\n})\nconst drain = pipeline(createAxiomDrain())\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', drain)\n})\n","server\u002Fplugins\u002Fevlog-drain.ts",[253,2081,2082,2104,2124,2144,2148,2174,2203,2222,2228,2248,2252,2274,2305],{"__ignoreMap":267},[271,2083,2084,2086,2089,2091,2094,2096,2098,2100,2102],{"class":273,"line":274},[271,2085,438],{"class":437},[271,2087,2088],{"class":437}," type",[271,2090,442],{"class":441},[271,2092,2093],{"class":445}," DrainContext",[271,2095,449],{"class":441},[271,2097,452],{"class":437},[271,2099,455],{"class":441},[271,2101,1486],{"class":371},[271,2103,461],{"class":441},[271,2105,2106,2108,2110,2113,2115,2117,2119,2122],{"class":273,"line":280},[271,2107,438],{"class":437},[271,2109,442],{"class":441},[271,2111,2112],{"class":445}," createAxiomDrain",[271,2114,449],{"class":441},[271,2116,452],{"class":437},[271,2118,455],{"class":441},[271,2120,2121],{"class":371},"evlog\u002Faxiom",[271,2123,461],{"class":441},[271,2125,2126,2128,2130,2133,2135,2137,2139,2142],{"class":273,"line":287},[271,2127,438],{"class":437},[271,2129,442],{"class":441},[271,2131,2132],{"class":445}," createDrainPipeline",[271,2134,449],{"class":441},[271,2136,452],{"class":437},[271,2138,455],{"class":441},[271,2140,2141],{"class":371},"evlog\u002Fpipeline",[271,2143,461],{"class":441},[271,2145,2146],{"class":273,"line":293},[271,2147,284],{"emptyLinePlaceholder":283},[271,2149,2150,2153,2156,2159,2161,2164,2167,2170,2172],{"class":273,"line":299},[271,2151,2152],{"class":757},"const",[271,2154,2155],{"class":445}," pipeline ",[271,2157,2158],{"class":441},"=",[271,2160,2132],{"class":493},[271,2162,2163],{"class":441},"\u003C",[271,2165,2166],{"class":368},"DrainContext",[271,2168,2169],{"class":441},">",[271,2171,496],{"class":445},[271,2173,499],{"class":441},[271,2175,2176,2179,2181,2183,2186,2188,2191,2193,2196,2198,2201],{"class":273,"line":305},[271,2177,2178],{"class":504},"  batch",[271,2180,508],{"class":441},[271,2182,442],{"class":441},[271,2184,2185],{"class":504}," size",[271,2187,508],{"class":441},[271,2189,2190],{"class":1207}," 50",[271,2192,897],{"class":441},[271,2194,2195],{"class":504}," intervalMs",[271,2197,508],{"class":441},[271,2199,2200],{"class":1207}," 5000",[271,2202,545],{"class":441},[271,2204,2205,2208,2210,2212,2215,2217,2220],{"class":273,"line":311},[271,2206,2207],{"class":504},"  retry",[271,2209,508],{"class":441},[271,2211,442],{"class":441},[271,2213,2214],{"class":504}," maxAttempts",[271,2216,508],{"class":441},[271,2218,2219],{"class":1207}," 3",[271,2221,545],{"class":441},[271,2223,2224,2226],{"class":273,"line":317},[271,2225,568],{"class":441},[271,2227,571],{"class":445},[271,2229,2230,2232,2235,2237,2240,2242,2245],{"class":273,"line":323},[271,2231,2152],{"class":757},[271,2233,2234],{"class":445}," drain ",[271,2236,2158],{"class":441},[271,2238,2239],{"class":493}," pipeline",[271,2241,496],{"class":445},[271,2243,2244],{"class":493},"createAxiomDrain",[271,2246,2247],{"class":445},"())\n",[271,2249,2250],{"class":273,"line":329},[271,2251,284],{"emptyLinePlaceholder":283},[271,2253,2254,2256,2258,2261,2263,2265,2268,2270,2272],{"class":273,"line":334},[271,2255,487],{"class":437},[271,2257,490],{"class":437},[271,2259,2260],{"class":493}," defineNitroPlugin",[271,2262,496],{"class":445},[271,2264,496],{"class":441},[271,2266,2267],{"class":764},"nitroApp",[271,2269,553],{"class":441},[271,2271,770],{"class":757},[271,2273,773],{"class":441},[271,2275,2276,2279,2281,2284,2286,2289,2291,2293,2296,2298,2300,2303],{"class":273,"line":340},[271,2277,2278],{"class":445},"  nitroApp",[271,2280,825],{"class":441},[271,2282,2283],{"class":445},"hooks",[271,2285,825],{"class":441},[271,2287,2288],{"class":493},"hook",[271,2290,496],{"class":504},[271,2292,542],{"class":441},[271,2294,2295],{"class":371},"evlog:drain",[271,2297,542],{"class":441},[271,2299,897],{"class":441},[271,2301,2302],{"class":445}," drain",[271,2304,571],{"class":504},[271,2306,2307,2309],{"class":273,"line":1423},[271,2308,568],{"class":441},[271,2310,571],{"class":445},[1611,2312,2313,2314,1617,2317,2319,2320,825],{"color":1613,"icon":13},"For Nitro v3 standalone, use ",[253,2315,2316],{},"definePlugin",[253,2318,458],{}," instead of ",[253,2321,2322],{},"defineNitroPlugin",[349,2324,2326],{"id":2325},"enricher-plugin","Enricher Plugin",[261,2328,2331],{"className":427,"code":2329,"filename":2330,"language":430,"meta":267,"style":267},"import { createUserAgentEnricher, createGeoEnricher } from 'evlog\u002Fenrichers'\n\nconst enrichers = [createUserAgentEnricher(), createGeoEnricher()]\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n    for (const enricher of enrichers) enricher(ctx)\n  })\n})\n","server\u002Fplugins\u002Fevlog-enrich.ts",[253,2332,2333,2358,2362,2386,2390,2410,2444,2474,2480],{"__ignoreMap":267},[271,2334,2335,2337,2339,2342,2344,2347,2349,2351,2353,2356],{"class":273,"line":274},[271,2336,438],{"class":437},[271,2338,442],{"class":441},[271,2340,2341],{"class":445}," createUserAgentEnricher",[271,2343,897],{"class":441},[271,2345,2346],{"class":445}," createGeoEnricher",[271,2348,449],{"class":441},[271,2350,452],{"class":437},[271,2352,455],{"class":441},[271,2354,2355],{"class":371},"evlog\u002Fenrichers",[271,2357,461],{"class":441},[271,2359,2360],{"class":273,"line":280},[271,2361,284],{"emptyLinePlaceholder":283},[271,2363,2364,2366,2369,2371,2373,2376,2379,2381,2383],{"class":273,"line":287},[271,2365,2152],{"class":757},[271,2367,2368],{"class":445}," enrichers ",[271,2370,2158],{"class":441},[271,2372,1749],{"class":445},[271,2374,2375],{"class":493},"createUserAgentEnricher",[271,2377,2378],{"class":445},"()",[271,2380,897],{"class":441},[271,2382,2346],{"class":493},[271,2384,2385],{"class":445},"()]\n",[271,2387,2388],{"class":273,"line":293},[271,2389,284],{"emptyLinePlaceholder":283},[271,2391,2392,2394,2396,2398,2400,2402,2404,2406,2408],{"class":273,"line":299},[271,2393,487],{"class":437},[271,2395,490],{"class":437},[271,2397,2260],{"class":493},[271,2399,496],{"class":445},[271,2401,496],{"class":441},[271,2403,2267],{"class":764},[271,2405,553],{"class":441},[271,2407,770],{"class":757},[271,2409,773],{"class":441},[271,2411,2412,2414,2416,2418,2420,2422,2424,2426,2429,2431,2433,2435,2438,2440,2442],{"class":273,"line":305},[271,2413,2278],{"class":445},[271,2415,825],{"class":441},[271,2417,2283],{"class":445},[271,2419,825],{"class":441},[271,2421,2288],{"class":493},[271,2423,496],{"class":504},[271,2425,542],{"class":441},[271,2427,2428],{"class":371},"evlog:enrich",[271,2430,542],{"class":441},[271,2432,897],{"class":441},[271,2434,761],{"class":441},[271,2436,2437],{"class":764},"ctx",[271,2439,553],{"class":441},[271,2441,770],{"class":757},[271,2443,773],{"class":441},[271,2445,2446,2449,2451,2453,2456,2459,2462,2465,2468,2470,2472],{"class":273,"line":311},[271,2447,2448],{"class":437},"    for",[271,2450,761],{"class":504},[271,2452,2152],{"class":757},[271,2454,2455],{"class":445}," enricher",[271,2457,2458],{"class":441}," of",[271,2460,2461],{"class":445}," enrichers",[271,2463,2464],{"class":504},") ",[271,2466,2467],{"class":493},"enricher",[271,2469,496],{"class":504},[271,2471,2437],{"class":445},[271,2473,571],{"class":504},[271,2475,2476,2478],{"class":273,"line":317},[271,2477,1418],{"class":441},[271,2479,571],{"class":504},[271,2481,2482,2484],{"class":273,"line":323},[271,2483,568],{"class":441},[271,2485,571],{"class":445},[1611,2487,1631,2490,1660,2492,2494],{"color":2488,"icon":2489},"neutral","i-lucide-arrow-right",[1633,2491,160],{"href":165},[1633,2493,214],{"href":219}," docs for the full list of available drains and enrichers.",[345,2496,140],{"id":1648},[349,2498,2500],{"id":2499},"head-sampling","Head Sampling",[249,2502,2503],{},"Randomly keep a percentage of logs per level. Runs before the request completes.",[354,2505,2506,2690],{},[261,2507,2509],{"className":427,"code":2508,"filename":429,"language":430,"meta":267,"style":267},"import { defineConfig } from 'nitro'\nimport evlog from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineConfig({\n  modules: [\n    evlog({\n      sampling: {\n        rates: { info: 10, warn: 50, debug: 5 },\n        keep: [\n          { duration: 1000 },\n          { status: 400 },\n        ],\n      },\n    })\n  ],\n})\n",[253,2510,2511,2529,2543,2547,2559,2567,2575,2584,2622,2631,2646,2660,2667,2671,2677,2683],{"__ignoreMap":267},[271,2512,2513,2515,2517,2519,2521,2523,2525,2527],{"class":273,"line":274},[271,2514,438],{"class":437},[271,2516,442],{"class":441},[271,2518,446],{"class":445},[271,2520,449],{"class":441},[271,2522,452],{"class":437},[271,2524,455],{"class":441},[271,2526,458],{"class":371},[271,2528,461],{"class":441},[271,2530,2531,2533,2535,2537,2539,2541],{"class":273,"line":280},[271,2532,438],{"class":437},[271,2534,468],{"class":445},[271,2536,471],{"class":437},[271,2538,455],{"class":441},[271,2540,476],{"class":371},[271,2542,461],{"class":441},[271,2544,2545],{"class":273,"line":287},[271,2546,284],{"emptyLinePlaceholder":283},[271,2548,2549,2551,2553,2555,2557],{"class":273,"line":293},[271,2550,487],{"class":437},[271,2552,490],{"class":437},[271,2554,446],{"class":493},[271,2556,496],{"class":445},[271,2558,499],{"class":441},[271,2560,2561,2563,2565],{"class":273,"line":299},[271,2562,505],{"class":504},[271,2564,508],{"class":441},[271,2566,511],{"class":445},[271,2568,2569,2571,2573],{"class":273,"line":305},[271,2570,516],{"class":493},[271,2572,496],{"class":445},[271,2574,499],{"class":441},[271,2576,2577,2580,2582],{"class":273,"line":311},[271,2578,2579],{"class":504},"      sampling",[271,2581,508],{"class":441},[271,2583,773],{"class":441},[271,2585,2586,2589,2591,2593,2596,2598,2601,2603,2606,2608,2610,2612,2615,2617,2620],{"class":273,"line":317},[271,2587,2588],{"class":504},"        rates",[271,2590,508],{"class":441},[271,2592,442],{"class":441},[271,2594,2595],{"class":504}," info",[271,2597,508],{"class":441},[271,2599,2600],{"class":1207}," 10",[271,2602,897],{"class":441},[271,2604,2605],{"class":504}," warn",[271,2607,508],{"class":441},[271,2609,2190],{"class":1207},[271,2611,897],{"class":441},[271,2613,2614],{"class":504}," debug",[271,2616,508],{"class":441},[271,2618,2619],{"class":1207}," 5",[271,2621,545],{"class":441},[271,2623,2624,2627,2629],{"class":273,"line":323},[271,2625,2626],{"class":504},"        keep",[271,2628,508],{"class":441},[271,2630,511],{"class":445},[271,2632,2633,2636,2639,2641,2644],{"class":273,"line":329},[271,2634,2635],{"class":441},"          {",[271,2637,2638],{"class":504}," duration",[271,2640,508],{"class":441},[271,2642,2643],{"class":1207}," 1000",[271,2645,545],{"class":441},[271,2647,2648,2650,2653,2655,2658],{"class":273,"line":334},[271,2649,2635],{"class":441},[271,2651,2652],{"class":504}," status",[271,2654,508],{"class":441},[271,2656,2657],{"class":1207}," 400",[271,2659,545],{"class":441},[271,2661,2662,2665],{"class":273,"line":340},[271,2663,2664],{"class":445},"        ]",[271,2666,556],{"class":441},[271,2668,2669],{"class":273,"line":1423},[271,2670,1848],{"class":441},[271,2672,2673,2675],{"class":273,"line":1605},[271,2674,550],{"class":441},[271,2676,571],{"class":445},[271,2678,2679,2681],{"class":273,"line":1863},[271,2680,561],{"class":445},[271,2682,556],{"class":441},[271,2684,2686,2688],{"class":273,"line":2685},16,[271,2687,568],{"class":441},[271,2689,571],{"class":445},[261,2691,2693],{"className":427,"code":2692,"filename":575,"language":430,"meta":267,"style":267},"import { defineNitroConfig } from 'nitropack\u002Fconfig'\nimport evlog from 'evlog\u002Fnitro'\n\nexport default defineNitroConfig({\n  modules: [\n    evlog({\n      sampling: {\n        rates: { info: 10, warn: 50, debug: 5 },\n        keep: [\n          { duration: 1000 },\n          { status: 400 },\n        ],\n      },\n    })\n  ],\n})\n",[253,2694,2695,2713,2727,2731,2743,2751,2759,2767,2799,2807,2819,2831,2837,2841,2847,2853],{"__ignoreMap":267},[271,2696,2697,2699,2701,2703,2705,2707,2709,2711],{"class":273,"line":274},[271,2698,438],{"class":437},[271,2700,442],{"class":441},[271,2702,586],{"class":445},[271,2704,449],{"class":441},[271,2706,452],{"class":437},[271,2708,455],{"class":441},[271,2710,595],{"class":371},[271,2712,461],{"class":441},[271,2714,2715,2717,2719,2721,2723,2725],{"class":273,"line":280},[271,2716,438],{"class":437},[271,2718,468],{"class":445},[271,2720,471],{"class":437},[271,2722,455],{"class":441},[271,2724,610],{"class":371},[271,2726,461],{"class":441},[271,2728,2729],{"class":273,"line":287},[271,2730,284],{"emptyLinePlaceholder":283},[271,2732,2733,2735,2737,2739,2741],{"class":273,"line":293},[271,2734,487],{"class":437},[271,2736,490],{"class":437},[271,2738,586],{"class":493},[271,2740,496],{"class":445},[271,2742,499],{"class":441},[271,2744,2745,2747,2749],{"class":273,"line":299},[271,2746,505],{"class":504},[271,2748,508],{"class":441},[271,2750,511],{"class":445},[271,2752,2753,2755,2757],{"class":273,"line":305},[271,2754,516],{"class":493},[271,2756,496],{"class":445},[271,2758,499],{"class":441},[271,2760,2761,2763,2765],{"class":273,"line":311},[271,2762,2579],{"class":504},[271,2764,508],{"class":441},[271,2766,773],{"class":441},[271,2768,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2791,2793,2795,2797],{"class":273,"line":317},[271,2770,2588],{"class":504},[271,2772,508],{"class":441},[271,2774,442],{"class":441},[271,2776,2595],{"class":504},[271,2778,508],{"class":441},[271,2780,2600],{"class":1207},[271,2782,897],{"class":441},[271,2784,2605],{"class":504},[271,2786,508],{"class":441},[271,2788,2190],{"class":1207},[271,2790,897],{"class":441},[271,2792,2614],{"class":504},[271,2794,508],{"class":441},[271,2796,2619],{"class":1207},[271,2798,545],{"class":441},[271,2800,2801,2803,2805],{"class":273,"line":323},[271,2802,2626],{"class":504},[271,2804,508],{"class":441},[271,2806,511],{"class":445},[271,2808,2809,2811,2813,2815,2817],{"class":273,"line":329},[271,2810,2635],{"class":441},[271,2812,2638],{"class":504},[271,2814,508],{"class":441},[271,2816,2643],{"class":1207},[271,2818,545],{"class":441},[271,2820,2821,2823,2825,2827,2829],{"class":273,"line":334},[271,2822,2635],{"class":441},[271,2824,2652],{"class":504},[271,2826,508],{"class":441},[271,2828,2657],{"class":1207},[271,2830,545],{"class":441},[271,2832,2833,2835],{"class":273,"line":340},[271,2834,2664],{"class":445},[271,2836,556],{"class":441},[271,2838,2839],{"class":273,"line":1423},[271,2840,1848],{"class":441},[271,2842,2843,2845],{"class":273,"line":1605},[271,2844,550],{"class":441},[271,2846,571],{"class":445},[271,2848,2849,2851],{"class":273,"line":1863},[271,2850,561],{"class":445},[271,2852,556],{"class":441},[271,2854,2855,2857],{"class":273,"line":2685},[271,2856,568],{"class":441},[271,2858,571],{"class":445},[249,2860,2861],{},"Each level is a percentage from 0 to 100. Levels you don't configure default to 100% (keep everything).",[349,2863,2865],{"id":2864},"custom-tail-sampling","Custom Tail Sampling",[249,2867,2868,2869,2872],{},"For conditions beyond status, duration, and path, use the ",[253,2870,2871],{},"evlog:emit:keep"," hook:",[261,2874,2877],{"className":427,"code":2875,"filename":2876,"language":430,"meta":267,"style":267},"export default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:emit:keep', (ctx) => {\n    const user = ctx.context.user as { premium?: boolean } | undefined\n    if (user?.premium) ctx.shouldKeep = true\n  })\n})\n","server\u002Fplugins\u002Fevlog-sampling.ts",[253,2878,2879,2899,2931,2975,3004,3010],{"__ignoreMap":267},[271,2880,2881,2883,2885,2887,2889,2891,2893,2895,2897],{"class":273,"line":274},[271,2882,487],{"class":437},[271,2884,490],{"class":437},[271,2886,2260],{"class":493},[271,2888,496],{"class":445},[271,2890,496],{"class":441},[271,2892,2267],{"class":764},[271,2894,553],{"class":441},[271,2896,770],{"class":757},[271,2898,773],{"class":441},[271,2900,2901,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2927,2929],{"class":273,"line":280},[271,2902,2278],{"class":445},[271,2904,825],{"class":441},[271,2906,2283],{"class":445},[271,2908,825],{"class":441},[271,2910,2288],{"class":493},[271,2912,496],{"class":504},[271,2914,542],{"class":441},[271,2916,2871],{"class":371},[271,2918,542],{"class":441},[271,2920,897],{"class":441},[271,2922,761],{"class":441},[271,2924,2437],{"class":764},[271,2926,553],{"class":441},[271,2928,770],{"class":757},[271,2930,773],{"class":441},[271,2932,2933,2936,2938,2940,2943,2945,2948,2950,2953,2956,2958,2961,2964,2967,2969,2972],{"class":273,"line":287},[271,2934,2935],{"class":757},"    const",[271,2937,836],{"class":445},[271,2939,784],{"class":441},[271,2941,2942],{"class":445}," ctx",[271,2944,825],{"class":441},[271,2946,2947],{"class":445},"context",[271,2949,825],{"class":441},[271,2951,2952],{"class":445},"user",[271,2954,2955],{"class":437}," as",[271,2957,442],{"class":441},[271,2959,2960],{"class":504}," premium",[271,2962,2963],{"class":441},"?:",[271,2965,2966],{"class":368}," boolean",[271,2968,449],{"class":441},[271,2970,2971],{"class":441}," |",[271,2973,2974],{"class":368}," undefined\n",[271,2976,2977,2980,2982,2984,2987,2990,2992,2994,2996,2999,3001],{"class":273,"line":293},[271,2978,2979],{"class":437},"    if",[271,2981,761],{"class":504},[271,2983,2952],{"class":445},[271,2985,2986],{"class":441},"?.",[271,2988,2989],{"class":445},"premium",[271,2991,2464],{"class":504},[271,2993,2437],{"class":445},[271,2995,825],{"class":441},[271,2997,2998],{"class":445},"shouldKeep",[271,3000,784],{"class":441},[271,3002,3003],{"class":934}," true\n",[271,3005,3006,3008],{"class":273,"line":299},[271,3007,1418],{"class":441},[271,3009,571],{"class":504},[271,3011,3012,3014],{"class":273,"line":305},[271,3013,568],{"class":441},[271,3015,571],{"class":445},[1611,3017,3018,3019,3022],{"color":1613,"icon":13},"Errors are always kept by default. You have to explicitly set ",[253,3020,3021],{},"error: 0"," to drop them.",[3024,3025,3026],"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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":267,"searchDepth":280,"depth":280,"links":3028},[3029,3033,3034,3035,3038,3042],{"id":347,"depth":280,"text":20,"children":3030},[3031,3032],{"id":351,"depth":287,"text":352},{"id":421,"depth":287,"text":422},{"id":687,"depth":280,"text":121},{"id":1228,"depth":280,"text":1229},{"id":1628,"depth":280,"text":150,"children":3036},[3037],{"id":1652,"depth":287,"text":1653},{"id":2067,"depth":280,"text":2068,"children":3039},[3040,3041],{"id":2074,"depth":287,"text":2075},{"id":2325,"depth":287,"text":2326},{"id":1648,"depth":280,"text":140,"children":3043},[3044,3045],{"id":2499,"depth":287,"text":2500},{"id":2864,"depth":287,"text":2865},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Nitro v2 and v3 applications.","md",null,{},{"title":56,"icon":59},{"title":56,"description":3046},"fKfNpwQ-grQruf59PRFHv1NoWnuPYGJoVJDz-OGEn4Y",[3054,3056],{"title":51,"path":52,"stem":53,"description":3055,"icon":54,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in SvelteKit applications.",{"title":61,"path":62,"stem":63,"description":3057,"icon":64,"children":-1},"Automatic wide events, structured errors, and logging in TanStack Start API routes and server functions.",1773505333389]