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