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