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