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