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