[{"data":1,"prerenderedAt":3154},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-nitro":297,"-frameworks-nitro-surround":3149},[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":3142,"extension":3143,"links":3144,"meta":3145,"navigation":3146,"path":141,"seo":3147,"stem":142,"__hash__":3148},"docs\u002F4.frameworks\u002F04.nitro.md",{"type":300,"value":301,"toc":3122},"minimark",[302,311,398,402,407,473,477,739,742,748,1218,1221,1280,1284,1302,1664,1680,1683,1704,1708,1723,2105,2119,2123,2126,2130,2365,2377,2381,2540,2549,2551,2555,2558,2913,2916,2920,2927,3070,3077,3081,3087,3118],[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",[399,1281,1283],{"id":1282},"error-handling","Error Handling",[303,1285,1286,1289,1290,1293,1294,1297,1298,1301],{},[307,1287,1288],{},"createError"," produces structured errors with ",[307,1291,1292],{},"why",", ",[307,1295,1296],{},"fix",", and ",[307,1299,1300],{},"link"," fields that help both humans and AI agents understand what went wrong.",[408,1303,1304,1482],{},[315,1305,1308],{"className":481,"code":1306,"filename":1307,"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,1309,1310,1328,1351,1355,1377,1393,1397,1408,1420,1436,1452,1468,1475],{"__ignoreMap":321},[325,1311,1312,1314,1316,1318,1320,1322,1324,1326],{"class":327,"line":328},[325,1313,492],{"class":491},[325,1315,496],{"class":495},[325,1317,764],{"class":499},[325,1319,503],{"class":495},[325,1321,506],{"class":491},[325,1323,509],{"class":495},[325,1325,773],{"class":425},[325,1327,515],{"class":495},[325,1329,1330,1332,1334,1336,1338,1341,1343,1345,1347,1349],{"class":327,"line":334},[325,1331,492],{"class":491},[325,1333,496],{"class":495},[325,1335,784],{"class":499},[325,1337,951],{"class":495},[325,1339,1340],{"class":499}," createError",[325,1342,503],{"class":495},[325,1344,506],{"class":491},[325,1346,509],{"class":495},[325,1348,530],{"class":425},[325,1350,515],{"class":495},[325,1352,1353],{"class":327,"line":341},[325,1354,338],{"emptyLinePlaceholder":337},[325,1356,1357,1359,1361,1363,1365,1367,1369,1371,1373,1375],{"class":327,"line":347},[325,1358,541],{"class":491},[325,1360,544],{"class":491},[325,1362,764],{"class":547},[325,1364,550],{"class":499},[325,1366,812],{"class":811},[325,1368,815],{"class":495},[325,1370,819],{"class":818},[325,1372,607],{"class":495},[325,1374,824],{"class":811},[325,1376,827],{"class":495},[325,1378,1379,1381,1383,1385,1387,1389,1391],{"class":327,"line":353},[325,1380,832],{"class":811},[325,1382,835],{"class":499},[325,1384,838],{"class":495},[325,1386,784],{"class":547},[325,1388,550],{"class":558},[325,1390,819],{"class":499},[325,1392,625],{"class":558},[325,1394,1395],{"class":327,"line":359},[325,1396,338],{"emptyLinePlaceholder":337},[325,1398,1399,1402,1404,1406],{"class":327,"line":365},[325,1400,1401],{"class":491},"  throw",[325,1403,1340],{"class":547},[325,1405,550],{"class":558},[325,1407,553],{"class":495},[325,1409,1410,1413,1415,1418],{"class":327,"line":371},[325,1411,1412],{"class":558},"    status",[325,1414,562],{"class":495},[325,1416,1417],{"class":1261}," 402",[325,1419,610],{"class":495},[325,1421,1422,1425,1427,1429,1432,1434],{"class":327,"line":377},[325,1423,1424],{"class":558},"    message",[325,1426,562],{"class":495},[325,1428,509],{"class":495},[325,1430,1431],{"class":425},"Payment failed",[325,1433,596],{"class":495},[325,1435,610],{"class":495},[325,1437,1438,1441,1443,1445,1448,1450],{"class":327,"line":383},[325,1439,1440],{"class":558},"    why",[325,1442,562],{"class":495},[325,1444,509],{"class":495},[325,1446,1447],{"class":425},"Card declined by issuer",[325,1449,596],{"class":495},[325,1451,610],{"class":495},[325,1453,1454,1457,1459,1461,1464,1466],{"class":327,"line":388},[325,1455,1456],{"class":558},"    fix",[325,1458,562],{"class":495},[325,1460,509],{"class":495},[325,1462,1463],{"class":425},"Try a different payment method",[325,1465,596],{"class":495},[325,1467,610],{"class":495},[325,1469,1470,1473],{"class":327,"line":394},[325,1471,1472],{"class":495},"  }",[325,1474,625],{"class":558},[325,1476,1478,1480],{"class":327,"line":1477},13,[325,1479,622],{"class":495},[325,1481,625],{"class":499},[315,1483,1486],{"className":481,"code":1484,"filename":1485,"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,1487,1488,1506,1524,1543,1547,1569,1585,1589,1599,1609,1623,1637,1651,1657],{"__ignoreMap":321},[325,1489,1490,1492,1494,1496,1498,1500,1502,1504],{"class":327,"line":328},[325,1491,492],{"class":491},[325,1493,496],{"class":495},[325,1495,1013],{"class":499},[325,1497,503],{"class":495},[325,1499,506],{"class":491},[325,1501,509],{"class":495},[325,1503,403],{"class":425},[325,1505,515],{"class":495},[325,1507,1508,1510,1512,1514,1516,1518,1520,1522],{"class":327,"line":334},[325,1509,492],{"class":491},[325,1511,496],{"class":495},[325,1513,784],{"class":499},[325,1515,503],{"class":495},[325,1517,506],{"class":491},[325,1519,509],{"class":495},[325,1521,664],{"class":425},[325,1523,515],{"class":495},[325,1525,1526,1528,1530,1532,1534,1536,1538,1541],{"class":327,"line":341},[325,1527,492],{"class":491},[325,1529,496],{"class":495},[325,1531,1340],{"class":499},[325,1533,503],{"class":495},[325,1535,506],{"class":491},[325,1537,509],{"class":495},[325,1539,1540],{"class":425},"evlog",[325,1542,515],{"class":495},[325,1544,1545],{"class":327,"line":347},[325,1546,338],{"emptyLinePlaceholder":337},[325,1548,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567],{"class":327,"line":353},[325,1550,541],{"class":491},[325,1552,544],{"class":491},[325,1554,1013],{"class":547},[325,1556,550],{"class":499},[325,1558,812],{"class":811},[325,1560,815],{"class":495},[325,1562,819],{"class":818},[325,1564,607],{"class":495},[325,1566,824],{"class":811},[325,1568,827],{"class":495},[325,1570,1571,1573,1575,1577,1579,1581,1583],{"class":327,"line":359},[325,1572,832],{"class":811},[325,1574,835],{"class":499},[325,1576,838],{"class":495},[325,1578,784],{"class":547},[325,1580,550],{"class":558},[325,1582,819],{"class":499},[325,1584,625],{"class":558},[325,1586,1587],{"class":327,"line":365},[325,1588,338],{"emptyLinePlaceholder":337},[325,1590,1591,1593,1595,1597],{"class":327,"line":371},[325,1592,1401],{"class":491},[325,1594,1340],{"class":547},[325,1596,550],{"class":558},[325,1598,553],{"class":495},[325,1600,1601,1603,1605,1607],{"class":327,"line":377},[325,1602,1412],{"class":558},[325,1604,562],{"class":495},[325,1606,1417],{"class":1261},[325,1608,610],{"class":495},[325,1610,1611,1613,1615,1617,1619,1621],{"class":327,"line":383},[325,1612,1424],{"class":558},[325,1614,562],{"class":495},[325,1616,509],{"class":495},[325,1618,1431],{"class":425},[325,1620,596],{"class":495},[325,1622,610],{"class":495},[325,1624,1625,1627,1629,1631,1633,1635],{"class":327,"line":388},[325,1626,1440],{"class":558},[325,1628,562],{"class":495},[325,1630,509],{"class":495},[325,1632,1447],{"class":425},[325,1634,596],{"class":495},[325,1636,610],{"class":495},[325,1638,1639,1641,1643,1645,1647,1649],{"class":327,"line":394},[325,1640,1456],{"class":558},[325,1642,562],{"class":495},[325,1644,509],{"class":495},[325,1646,1463],{"class":425},[325,1648,596],{"class":495},[325,1650,610],{"class":495},[325,1652,1653,1655],{"class":327,"line":1477},[325,1654,1472],{"class":495},[325,1656,625],{"class":558},[325,1658,1660,1662],{"class":327,"line":1659},14,[325,1661,622],{"class":495},[325,1663,625],{"class":499},[1665,1666,1668,1669,1671,1672,1674,1675,1671,1677,1679],"callout",{"color":1667,"icon":13},"info","In Nitro v3, import ",[307,1670,1288],{}," from ",[307,1673,530],{}," - it wraps the Nitro error handler. In Nitro v2, import ",[307,1676,1288],{},[307,1678,1540],{}," directly.",[399,1681,81],{"id":1682},"configuration",[303,1684,1685,1686,1690,1691,1293,1694,1293,1697,1293,1700,1703],{},"See the ",[1687,1688,1689],"a",{"href":82},"Configuration reference"," for all available options (",[307,1692,1693],{},"enabled",[307,1695,1696],{},"pretty",[307,1698,1699],{},"silent",[307,1701,1702],{},"sampling",", etc.).",[403,1705,1707],{"id":1706},"route-filtering","Route Filtering",[303,1709,1710,1711,1714,1715,1718,1719,1722],{},"Use ",[307,1712,1713],{},"include"," and ",[307,1716,1717],{},"exclude"," to control which routes are logged, and ",[307,1720,1721],{},"routes"," to assign different service names to different route groups:",[408,1724,1725,1922],{},[315,1726,1728],{"className":481,"code":1727,"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,1729,1730,1748,1762,1766,1778,1786,1794,1816,1836,1845,1872,1898,1903,1909,1915],{"__ignoreMap":321},[325,1731,1732,1734,1736,1738,1740,1742,1744,1746],{"class":327,"line":328},[325,1733,492],{"class":491},[325,1735,496],{"class":495},[325,1737,500],{"class":499},[325,1739,503],{"class":495},[325,1741,506],{"class":491},[325,1743,509],{"class":495},[325,1745,512],{"class":425},[325,1747,515],{"class":495},[325,1749,1750,1752,1754,1756,1758,1760],{"class":327,"line":334},[325,1751,492],{"class":491},[325,1753,522],{"class":499},[325,1755,525],{"class":491},[325,1757,509],{"class":495},[325,1759,530],{"class":425},[325,1761,515],{"class":495},[325,1763,1764],{"class":327,"line":341},[325,1765,338],{"emptyLinePlaceholder":337},[325,1767,1768,1770,1772,1774,1776],{"class":327,"line":347},[325,1769,541],{"class":491},[325,1771,544],{"class":491},[325,1773,500],{"class":547},[325,1775,550],{"class":499},[325,1777,553],{"class":495},[325,1779,1780,1782,1784],{"class":327,"line":353},[325,1781,559],{"class":558},[325,1783,562],{"class":495},[325,1785,565],{"class":499},[325,1787,1788,1790,1792],{"class":327,"line":359},[325,1789,570],{"class":547},[325,1791,550],{"class":499},[325,1793,553],{"class":495},[325,1795,1796,1799,1801,1804,1806,1809,1811,1814],{"class":327,"line":365},[325,1797,1798],{"class":558},"      include",[325,1800,562],{"class":495},[325,1802,1803],{"class":499}," [",[325,1805,596],{"class":495},[325,1807,1808],{"class":425},"\u002Fapi\u002F**",[325,1810,596],{"class":495},[325,1812,1813],{"class":499},"]",[325,1815,610],{"class":495},[325,1817,1818,1821,1823,1825,1827,1830,1832,1834],{"class":327,"line":371},[325,1819,1820],{"class":558},"      exclude",[325,1822,562],{"class":495},[325,1824,1803],{"class":499},[325,1826,596],{"class":495},[325,1828,1829],{"class":425},"\u002Fapi\u002Fhealth",[325,1831,596],{"class":495},[325,1833,1813],{"class":499},[325,1835,610],{"class":495},[325,1837,1838,1841,1843],{"class":327,"line":377},[325,1839,1840],{"class":558},"      routes",[325,1842,562],{"class":495},[325,1844,827],{"class":495},[325,1846,1847,1850,1853,1855,1857,1859,1861,1863,1865,1868,1870],{"class":327,"line":383},[325,1848,1849],{"class":495},"        '",[325,1851,1852],{"class":558},"\u002Fapi\u002Fauth\u002F**",[325,1854,596],{"class":495},[325,1856,562],{"class":495},[325,1858,496],{"class":495},[325,1860,586],{"class":558},[325,1862,562],{"class":495},[325,1864,509],{"class":495},[325,1866,1867],{"class":425},"auth-service",[325,1869,596],{"class":495},[325,1871,599],{"class":495},[325,1873,1874,1876,1879,1881,1883,1885,1887,1889,1891,1894,1896],{"class":327,"line":388},[325,1875,1849],{"class":495},[325,1877,1878],{"class":558},"\u002Fapi\u002Fpayment\u002F**",[325,1880,596],{"class":495},[325,1882,562],{"class":495},[325,1884,496],{"class":495},[325,1886,586],{"class":558},[325,1888,562],{"class":495},[325,1890,509],{"class":495},[325,1892,1893],{"class":425},"payment-service",[325,1895,596],{"class":495},[325,1897,599],{"class":495},[325,1899,1900],{"class":327,"line":394},[325,1901,1902],{"class":495},"      },\n",[325,1904,1905,1907],{"class":327,"line":1477},[325,1906,604],{"class":495},[325,1908,625],{"class":499},[325,1910,1911,1913],{"class":327,"line":1659},[325,1912,615],{"class":499},[325,1914,610],{"class":495},[325,1916,1918,1920],{"class":327,"line":1917},15,[325,1919,622],{"class":495},[325,1921,625],{"class":499},[315,1923,1925],{"className":481,"code":1924,"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,1926,1927,1945,1959,1963,1975,1983,1991,2009,2027,2035,2059,2083,2087,2093,2099],{"__ignoreMap":321},[325,1928,1929,1931,1933,1935,1937,1939,1941,1943],{"class":327,"line":328},[325,1930,492],{"class":491},[325,1932,496],{"class":495},[325,1934,640],{"class":499},[325,1936,503],{"class":495},[325,1938,506],{"class":491},[325,1940,509],{"class":495},[325,1942,649],{"class":425},[325,1944,515],{"class":495},[325,1946,1947,1949,1951,1953,1955,1957],{"class":327,"line":334},[325,1948,492],{"class":491},[325,1950,522],{"class":499},[325,1952,525],{"class":491},[325,1954,509],{"class":495},[325,1956,664],{"class":425},[325,1958,515],{"class":495},[325,1960,1961],{"class":327,"line":341},[325,1962,338],{"emptyLinePlaceholder":337},[325,1964,1965,1967,1969,1971,1973],{"class":327,"line":347},[325,1966,541],{"class":491},[325,1968,544],{"class":491},[325,1970,640],{"class":547},[325,1972,550],{"class":499},[325,1974,553],{"class":495},[325,1976,1977,1979,1981],{"class":327,"line":353},[325,1978,559],{"class":558},[325,1980,562],{"class":495},[325,1982,565],{"class":499},[325,1984,1985,1987,1989],{"class":327,"line":359},[325,1986,570],{"class":547},[325,1988,550],{"class":499},[325,1990,553],{"class":495},[325,1992,1993,1995,1997,1999,2001,2003,2005,2007],{"class":327,"line":365},[325,1994,1798],{"class":558},[325,1996,562],{"class":495},[325,1998,1803],{"class":499},[325,2000,596],{"class":495},[325,2002,1808],{"class":425},[325,2004,596],{"class":495},[325,2006,1813],{"class":499},[325,2008,610],{"class":495},[325,2010,2011,2013,2015,2017,2019,2021,2023,2025],{"class":327,"line":371},[325,2012,1820],{"class":558},[325,2014,562],{"class":495},[325,2016,1803],{"class":499},[325,2018,596],{"class":495},[325,2020,1829],{"class":425},[325,2022,596],{"class":495},[325,2024,1813],{"class":499},[325,2026,610],{"class":495},[325,2028,2029,2031,2033],{"class":327,"line":377},[325,2030,1840],{"class":558},[325,2032,562],{"class":495},[325,2034,827],{"class":495},[325,2036,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057],{"class":327,"line":383},[325,2038,1849],{"class":495},[325,2040,1852],{"class":558},[325,2042,596],{"class":495},[325,2044,562],{"class":495},[325,2046,496],{"class":495},[325,2048,586],{"class":558},[325,2050,562],{"class":495},[325,2052,509],{"class":495},[325,2054,1867],{"class":425},[325,2056,596],{"class":495},[325,2058,599],{"class":495},[325,2060,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2081],{"class":327,"line":388},[325,2062,1849],{"class":495},[325,2064,1878],{"class":558},[325,2066,596],{"class":495},[325,2068,562],{"class":495},[325,2070,496],{"class":495},[325,2072,586],{"class":558},[325,2074,562],{"class":495},[325,2076,509],{"class":495},[325,2078,1893],{"class":425},[325,2080,596],{"class":495},[325,2082,599],{"class":495},[325,2084,2085],{"class":327,"line":394},[325,2086,1902],{"class":495},[325,2088,2089,2091],{"class":327,"line":1477},[325,2090,604],{"class":495},[325,2092,625],{"class":499},[325,2094,2095,2097],{"class":327,"line":1659},[325,2096,615],{"class":499},[325,2098,610],{"class":495},[325,2100,2101,2103],{"class":327,"line":1917},[325,2102,622],{"class":495},[325,2104,625],{"class":499},[1665,2106,2109,2113,2114,1714,2116,2118],{"color":2107,"icon":2108},"warning","i-lucide-alert-triangle",[2110,2111,2112],"strong",{},"Exclusions take precedence."," If a path matches both ",[307,2115,1713],{},[307,2117,1717],{},", it will be excluded.",[399,2120,2122],{"id":2121},"drain-enrichers","Drain & Enrichers",[303,2124,2125],{},"Use Nitro plugin hooks to send logs to external services and enrich them with additional context.",[403,2127,2129],{"id":2128},"drain-plugin","Drain Plugin",[315,2131,2134],{"className":481,"code":2132,"filename":2133,"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,2135,2136,2158,2178,2198,2202,2228,2257,2276,2282,2302,2306,2328,2359],{"__ignoreMap":321},[325,2137,2138,2140,2143,2145,2148,2150,2152,2154,2156],{"class":327,"line":328},[325,2139,492],{"class":491},[325,2141,2142],{"class":491}," type",[325,2144,496],{"class":495},[325,2146,2147],{"class":499}," DrainContext",[325,2149,503],{"class":495},[325,2151,506],{"class":491},[325,2153,509],{"class":495},[325,2155,1540],{"class":425},[325,2157,515],{"class":495},[325,2159,2160,2162,2164,2167,2169,2171,2173,2176],{"class":327,"line":334},[325,2161,492],{"class":491},[325,2163,496],{"class":495},[325,2165,2166],{"class":499}," createAxiomDrain",[325,2168,503],{"class":495},[325,2170,506],{"class":491},[325,2172,509],{"class":495},[325,2174,2175],{"class":425},"evlog\u002Faxiom",[325,2177,515],{"class":495},[325,2179,2180,2182,2184,2187,2189,2191,2193,2196],{"class":327,"line":341},[325,2181,492],{"class":491},[325,2183,496],{"class":495},[325,2185,2186],{"class":499}," createDrainPipeline",[325,2188,503],{"class":495},[325,2190,506],{"class":491},[325,2192,509],{"class":495},[325,2194,2195],{"class":425},"evlog\u002Fpipeline",[325,2197,515],{"class":495},[325,2199,2200],{"class":327,"line":347},[325,2201,338],{"emptyLinePlaceholder":337},[325,2203,2204,2207,2210,2213,2215,2218,2221,2224,2226],{"class":327,"line":353},[325,2205,2206],{"class":811},"const",[325,2208,2209],{"class":499}," pipeline ",[325,2211,2212],{"class":495},"=",[325,2214,2186],{"class":547},[325,2216,2217],{"class":495},"\u003C",[325,2219,2220],{"class":422},"DrainContext",[325,2222,2223],{"class":495},">",[325,2225,550],{"class":499},[325,2227,553],{"class":495},[325,2229,2230,2233,2235,2237,2240,2242,2245,2247,2250,2252,2255],{"class":327,"line":359},[325,2231,2232],{"class":558},"  batch",[325,2234,562],{"class":495},[325,2236,496],{"class":495},[325,2238,2239],{"class":558}," size",[325,2241,562],{"class":495},[325,2243,2244],{"class":1261}," 50",[325,2246,951],{"class":495},[325,2248,2249],{"class":558}," intervalMs",[325,2251,562],{"class":495},[325,2253,2254],{"class":1261}," 5000",[325,2256,599],{"class":495},[325,2258,2259,2262,2264,2266,2269,2271,2274],{"class":327,"line":365},[325,2260,2261],{"class":558},"  retry",[325,2263,562],{"class":495},[325,2265,496],{"class":495},[325,2267,2268],{"class":558}," maxAttempts",[325,2270,562],{"class":495},[325,2272,2273],{"class":1261}," 3",[325,2275,599],{"class":495},[325,2277,2278,2280],{"class":327,"line":371},[325,2279,622],{"class":495},[325,2281,625],{"class":499},[325,2283,2284,2286,2289,2291,2294,2296,2299],{"class":327,"line":377},[325,2285,2206],{"class":811},[325,2287,2288],{"class":499}," drain ",[325,2290,2212],{"class":495},[325,2292,2293],{"class":547}," pipeline",[325,2295,550],{"class":499},[325,2297,2298],{"class":547},"createAxiomDrain",[325,2300,2301],{"class":499},"())\n",[325,2303,2304],{"class":327,"line":383},[325,2305,338],{"emptyLinePlaceholder":337},[325,2307,2308,2310,2312,2315,2317,2319,2322,2324,2326],{"class":327,"line":388},[325,2309,541],{"class":491},[325,2311,544],{"class":491},[325,2313,2314],{"class":547}," defineNitroPlugin",[325,2316,550],{"class":499},[325,2318,550],{"class":495},[325,2320,2321],{"class":818},"nitroApp",[325,2323,607],{"class":495},[325,2325,824],{"class":811},[325,2327,827],{"class":495},[325,2329,2330,2333,2335,2338,2340,2343,2345,2347,2350,2352,2354,2357],{"class":327,"line":394},[325,2331,2332],{"class":499},"  nitroApp",[325,2334,879],{"class":495},[325,2336,2337],{"class":499},"hooks",[325,2339,879],{"class":495},[325,2341,2342],{"class":547},"hook",[325,2344,550],{"class":558},[325,2346,596],{"class":495},[325,2348,2349],{"class":425},"evlog:drain",[325,2351,596],{"class":495},[325,2353,951],{"class":495},[325,2355,2356],{"class":499}," drain",[325,2358,625],{"class":558},[325,2360,2361,2363],{"class":327,"line":1477},[325,2362,622],{"class":495},[325,2364,625],{"class":499},[1665,2366,2367,2368,1671,2371,2373,2374,879],{"color":1667,"icon":13},"For Nitro v3 standalone, use ",[307,2369,2370],{},"definePlugin",[307,2372,512],{}," instead of ",[307,2375,2376],{},"defineNitroPlugin",[403,2378,2380],{"id":2379},"enricher-plugin","Enricher Plugin",[315,2382,2385],{"className":481,"code":2383,"filename":2384,"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,2386,2387,2412,2416,2440,2444,2464,2498,2528,2534],{"__ignoreMap":321},[325,2388,2389,2391,2393,2396,2398,2401,2403,2405,2407,2410],{"class":327,"line":328},[325,2390,492],{"class":491},[325,2392,496],{"class":495},[325,2394,2395],{"class":499}," createUserAgentEnricher",[325,2397,951],{"class":495},[325,2399,2400],{"class":499}," createGeoEnricher",[325,2402,503],{"class":495},[325,2404,506],{"class":491},[325,2406,509],{"class":495},[325,2408,2409],{"class":425},"evlog\u002Fenrichers",[325,2411,515],{"class":495},[325,2413,2414],{"class":327,"line":334},[325,2415,338],{"emptyLinePlaceholder":337},[325,2417,2418,2420,2423,2425,2427,2430,2433,2435,2437],{"class":327,"line":341},[325,2419,2206],{"class":811},[325,2421,2422],{"class":499}," enrichers ",[325,2424,2212],{"class":495},[325,2426,1803],{"class":499},[325,2428,2429],{"class":547},"createUserAgentEnricher",[325,2431,2432],{"class":499},"()",[325,2434,951],{"class":495},[325,2436,2400],{"class":547},[325,2438,2439],{"class":499},"()]\n",[325,2441,2442],{"class":327,"line":347},[325,2443,338],{"emptyLinePlaceholder":337},[325,2445,2446,2448,2450,2452,2454,2456,2458,2460,2462],{"class":327,"line":353},[325,2447,541],{"class":491},[325,2449,544],{"class":491},[325,2451,2314],{"class":547},[325,2453,550],{"class":499},[325,2455,550],{"class":495},[325,2457,2321],{"class":818},[325,2459,607],{"class":495},[325,2461,824],{"class":811},[325,2463,827],{"class":495},[325,2465,2466,2468,2470,2472,2474,2476,2478,2480,2483,2485,2487,2489,2492,2494,2496],{"class":327,"line":359},[325,2467,2332],{"class":499},[325,2469,879],{"class":495},[325,2471,2337],{"class":499},[325,2473,879],{"class":495},[325,2475,2342],{"class":547},[325,2477,550],{"class":558},[325,2479,596],{"class":495},[325,2481,2482],{"class":425},"evlog:enrich",[325,2484,596],{"class":495},[325,2486,951],{"class":495},[325,2488,815],{"class":495},[325,2490,2491],{"class":818},"ctx",[325,2493,607],{"class":495},[325,2495,824],{"class":811},[325,2497,827],{"class":495},[325,2499,2500,2503,2505,2507,2510,2513,2516,2519,2522,2524,2526],{"class":327,"line":365},[325,2501,2502],{"class":491},"    for",[325,2504,815],{"class":558},[325,2506,2206],{"class":811},[325,2508,2509],{"class":499}," enricher",[325,2511,2512],{"class":495}," of",[325,2514,2515],{"class":499}," enrichers",[325,2517,2518],{"class":558},") ",[325,2520,2521],{"class":547},"enricher",[325,2523,550],{"class":558},[325,2525,2491],{"class":499},[325,2527,625],{"class":558},[325,2529,2530,2532],{"class":327,"line":371},[325,2531,1472],{"class":495},[325,2533,625],{"class":558},[325,2535,2536,2538],{"class":327,"line":377},[325,2537,622],{"class":495},[325,2539,625],{"class":499},[1665,2541,1685,2544,1714,2546,2548],{"color":2542,"icon":2543},"neutral","i-lucide-arrow-right",[1687,2545,204],{"href":209},[1687,2547,268],{"href":273}," docs for the full list of available drains and enrichers.",[399,2550,86],{"id":1702},[403,2552,2554],{"id":2553},"head-sampling","Head Sampling",[303,2556,2557],{},"Randomly keep a percentage of logs per level. Runs before the request completes.",[408,2559,2560,2744],{},[315,2561,2563],{"className":481,"code":2562,"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,2564,2565,2583,2597,2601,2613,2621,2629,2638,2676,2685,2700,2714,2721,2725,2731,2737],{"__ignoreMap":321},[325,2566,2567,2569,2571,2573,2575,2577,2579,2581],{"class":327,"line":328},[325,2568,492],{"class":491},[325,2570,496],{"class":495},[325,2572,500],{"class":499},[325,2574,503],{"class":495},[325,2576,506],{"class":491},[325,2578,509],{"class":495},[325,2580,512],{"class":425},[325,2582,515],{"class":495},[325,2584,2585,2587,2589,2591,2593,2595],{"class":327,"line":334},[325,2586,492],{"class":491},[325,2588,522],{"class":499},[325,2590,525],{"class":491},[325,2592,509],{"class":495},[325,2594,530],{"class":425},[325,2596,515],{"class":495},[325,2598,2599],{"class":327,"line":341},[325,2600,338],{"emptyLinePlaceholder":337},[325,2602,2603,2605,2607,2609,2611],{"class":327,"line":347},[325,2604,541],{"class":491},[325,2606,544],{"class":491},[325,2608,500],{"class":547},[325,2610,550],{"class":499},[325,2612,553],{"class":495},[325,2614,2615,2617,2619],{"class":327,"line":353},[325,2616,559],{"class":558},[325,2618,562],{"class":495},[325,2620,565],{"class":499},[325,2622,2623,2625,2627],{"class":327,"line":359},[325,2624,570],{"class":547},[325,2626,550],{"class":499},[325,2628,553],{"class":495},[325,2630,2631,2634,2636],{"class":327,"line":365},[325,2632,2633],{"class":558},"      sampling",[325,2635,562],{"class":495},[325,2637,827],{"class":495},[325,2639,2640,2643,2645,2647,2650,2652,2655,2657,2660,2662,2664,2666,2669,2671,2674],{"class":327,"line":371},[325,2641,2642],{"class":558},"        rates",[325,2644,562],{"class":495},[325,2646,496],{"class":495},[325,2648,2649],{"class":558}," info",[325,2651,562],{"class":495},[325,2653,2654],{"class":1261}," 10",[325,2656,951],{"class":495},[325,2658,2659],{"class":558}," warn",[325,2661,562],{"class":495},[325,2663,2244],{"class":1261},[325,2665,951],{"class":495},[325,2667,2668],{"class":558}," debug",[325,2670,562],{"class":495},[325,2672,2673],{"class":1261}," 5",[325,2675,599],{"class":495},[325,2677,2678,2681,2683],{"class":327,"line":377},[325,2679,2680],{"class":558},"        keep",[325,2682,562],{"class":495},[325,2684,565],{"class":499},[325,2686,2687,2690,2693,2695,2698],{"class":327,"line":383},[325,2688,2689],{"class":495},"          {",[325,2691,2692],{"class":558}," duration",[325,2694,562],{"class":495},[325,2696,2697],{"class":1261}," 1000",[325,2699,599],{"class":495},[325,2701,2702,2704,2707,2709,2712],{"class":327,"line":388},[325,2703,2689],{"class":495},[325,2705,2706],{"class":558}," status",[325,2708,562],{"class":495},[325,2710,2711],{"class":1261}," 400",[325,2713,599],{"class":495},[325,2715,2716,2719],{"class":327,"line":394},[325,2717,2718],{"class":499},"        ]",[325,2720,610],{"class":495},[325,2722,2723],{"class":327,"line":1477},[325,2724,1902],{"class":495},[325,2726,2727,2729],{"class":327,"line":1659},[325,2728,604],{"class":495},[325,2730,625],{"class":499},[325,2732,2733,2735],{"class":327,"line":1917},[325,2734,615],{"class":499},[325,2736,610],{"class":495},[325,2738,2740,2742],{"class":327,"line":2739},16,[325,2741,622],{"class":495},[325,2743,625],{"class":499},[315,2745,2747],{"className":481,"code":2746,"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,2748,2749,2767,2781,2785,2797,2805,2813,2821,2853,2861,2873,2885,2891,2895,2901,2907],{"__ignoreMap":321},[325,2750,2751,2753,2755,2757,2759,2761,2763,2765],{"class":327,"line":328},[325,2752,492],{"class":491},[325,2754,496],{"class":495},[325,2756,640],{"class":499},[325,2758,503],{"class":495},[325,2760,506],{"class":491},[325,2762,509],{"class":495},[325,2764,649],{"class":425},[325,2766,515],{"class":495},[325,2768,2769,2771,2773,2775,2777,2779],{"class":327,"line":334},[325,2770,492],{"class":491},[325,2772,522],{"class":499},[325,2774,525],{"class":491},[325,2776,509],{"class":495},[325,2778,664],{"class":425},[325,2780,515],{"class":495},[325,2782,2783],{"class":327,"line":341},[325,2784,338],{"emptyLinePlaceholder":337},[325,2786,2787,2789,2791,2793,2795],{"class":327,"line":347},[325,2788,541],{"class":491},[325,2790,544],{"class":491},[325,2792,640],{"class":547},[325,2794,550],{"class":499},[325,2796,553],{"class":495},[325,2798,2799,2801,2803],{"class":327,"line":353},[325,2800,559],{"class":558},[325,2802,562],{"class":495},[325,2804,565],{"class":499},[325,2806,2807,2809,2811],{"class":327,"line":359},[325,2808,570],{"class":547},[325,2810,550],{"class":499},[325,2812,553],{"class":495},[325,2814,2815,2817,2819],{"class":327,"line":365},[325,2816,2633],{"class":558},[325,2818,562],{"class":495},[325,2820,827],{"class":495},[325,2822,2823,2825,2827,2829,2831,2833,2835,2837,2839,2841,2843,2845,2847,2849,2851],{"class":327,"line":371},[325,2824,2642],{"class":558},[325,2826,562],{"class":495},[325,2828,496],{"class":495},[325,2830,2649],{"class":558},[325,2832,562],{"class":495},[325,2834,2654],{"class":1261},[325,2836,951],{"class":495},[325,2838,2659],{"class":558},[325,2840,562],{"class":495},[325,2842,2244],{"class":1261},[325,2844,951],{"class":495},[325,2846,2668],{"class":558},[325,2848,562],{"class":495},[325,2850,2673],{"class":1261},[325,2852,599],{"class":495},[325,2854,2855,2857,2859],{"class":327,"line":377},[325,2856,2680],{"class":558},[325,2858,562],{"class":495},[325,2860,565],{"class":499},[325,2862,2863,2865,2867,2869,2871],{"class":327,"line":383},[325,2864,2689],{"class":495},[325,2866,2692],{"class":558},[325,2868,562],{"class":495},[325,2870,2697],{"class":1261},[325,2872,599],{"class":495},[325,2874,2875,2877,2879,2881,2883],{"class":327,"line":388},[325,2876,2689],{"class":495},[325,2878,2706],{"class":558},[325,2880,562],{"class":495},[325,2882,2711],{"class":1261},[325,2884,599],{"class":495},[325,2886,2887,2889],{"class":327,"line":394},[325,2888,2718],{"class":499},[325,2890,610],{"class":495},[325,2892,2893],{"class":327,"line":1477},[325,2894,1902],{"class":495},[325,2896,2897,2899],{"class":327,"line":1659},[325,2898,604],{"class":495},[325,2900,625],{"class":499},[325,2902,2903,2905],{"class":327,"line":1917},[325,2904,615],{"class":499},[325,2906,610],{"class":495},[325,2908,2909,2911],{"class":327,"line":2739},[325,2910,622],{"class":495},[325,2912,625],{"class":499},[303,2914,2915],{},"Each level is a percentage from 0 to 100. Levels you don't configure default to 100% (keep everything).",[403,2917,2919],{"id":2918},"custom-tail-sampling","Custom Tail Sampling",[303,2921,2922,2923,2926],{},"For conditions beyond status, duration, and path, use the ",[307,2924,2925],{},"evlog:emit:keep"," hook:",[315,2928,2931],{"className":481,"code":2929,"filename":2930,"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,2932,2933,2953,2985,3029,3058,3064],{"__ignoreMap":321},[325,2934,2935,2937,2939,2941,2943,2945,2947,2949,2951],{"class":327,"line":328},[325,2936,541],{"class":491},[325,2938,544],{"class":491},[325,2940,2314],{"class":547},[325,2942,550],{"class":499},[325,2944,550],{"class":495},[325,2946,2321],{"class":818},[325,2948,607],{"class":495},[325,2950,824],{"class":811},[325,2952,827],{"class":495},[325,2954,2955,2957,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2983],{"class":327,"line":334},[325,2956,2332],{"class":499},[325,2958,879],{"class":495},[325,2960,2337],{"class":499},[325,2962,879],{"class":495},[325,2964,2342],{"class":547},[325,2966,550],{"class":558},[325,2968,596],{"class":495},[325,2970,2925],{"class":425},[325,2972,596],{"class":495},[325,2974,951],{"class":495},[325,2976,815],{"class":495},[325,2978,2491],{"class":818},[325,2980,607],{"class":495},[325,2982,824],{"class":811},[325,2984,827],{"class":495},[325,2986,2987,2990,2992,2994,2997,2999,3002,3004,3007,3010,3012,3015,3018,3021,3023,3026],{"class":327,"line":341},[325,2988,2989],{"class":811},"    const",[325,2991,890],{"class":499},[325,2993,838],{"class":495},[325,2995,2996],{"class":499}," ctx",[325,2998,879],{"class":495},[325,3000,3001],{"class":499},"context",[325,3003,879],{"class":495},[325,3005,3006],{"class":499},"user",[325,3008,3009],{"class":491}," as",[325,3011,496],{"class":495},[325,3013,3014],{"class":558}," premium",[325,3016,3017],{"class":495},"?:",[325,3019,3020],{"class":422}," boolean",[325,3022,503],{"class":495},[325,3024,3025],{"class":495}," |",[325,3027,3028],{"class":422}," undefined\n",[325,3030,3031,3034,3036,3038,3041,3044,3046,3048,3050,3053,3055],{"class":327,"line":347},[325,3032,3033],{"class":491},"    if",[325,3035,815],{"class":558},[325,3037,3006],{"class":499},[325,3039,3040],{"class":495},"?.",[325,3042,3043],{"class":499},"premium",[325,3045,2518],{"class":558},[325,3047,2491],{"class":499},[325,3049,879],{"class":495},[325,3051,3052],{"class":499},"shouldKeep",[325,3054,838],{"class":495},[325,3056,3057],{"class":988}," true\n",[325,3059,3060,3062],{"class":327,"line":353},[325,3061,1472],{"class":495},[325,3063,625],{"class":558},[325,3065,3066,3068],{"class":327,"line":359},[325,3067,622],{"class":495},[325,3069,625],{"class":499},[1665,3071,3072,3073,3076],{"color":1667,"icon":13},"Errors are always kept by default. You have to explicitly set ",[307,3074,3075],{},"error: 0"," to drop them.",[399,3078,3080],{"id":3079},"next-steps","Next Steps",[303,3082,3083,3084,3086],{},"Deepen your ",[2110,3085,140],{}," integration:",[3088,3089,3090,3096,3101,3106],"ul",{},[3091,3092,3093,3095],"li",{},[1687,3094,46],{"href":47},": Design comprehensive events with context layering",[3091,3097,3098,3100],{},[1687,3099,204],{"href":209},": Send logs to Axiom, Sentry, PostHog, and more",[3091,3102,3103,3105],{},[1687,3104,86],{"href":87},": Control log volume with head and tail sampling",[3091,3107,3108,3110,3111,1293,3113,1297,3115,3117],{},[1687,3109,51],{"href":52},": Throw errors with ",[307,3112,1292],{},[307,3114,1296],{},[307,3116,1300],{}," fields",[3119,3120,3121],"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":3123},[3124,3128,3129,3130,3133,3137,3141],{"id":401,"depth":334,"text":20,"children":3125},[3126,3127],{"id":405,"depth":341,"text":406},{"id":475,"depth":341,"text":476},{"id":741,"depth":334,"text":46},{"id":1282,"depth":334,"text":1283},{"id":1682,"depth":334,"text":81,"children":3131},[3132],{"id":1706,"depth":341,"text":1707},{"id":2121,"depth":334,"text":2122,"children":3134},[3135,3136],{"id":2128,"depth":341,"text":2129},{"id":2379,"depth":341,"text":2380},{"id":1702,"depth":334,"text":86,"children":3138},[3139,3140],{"id":2553,"depth":341,"text":2554},{"id":2918,"depth":341,"text":2919},{"id":3079,"depth":334,"text":3080},"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":3142},"1Oze79MU7JhqH2LGtFGaj-uJ2Dwdhx5wajI1Efkz9z4",[3150,3152],{"title":135,"path":136,"stem":137,"description":3151,"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":3153,"icon":148,"children":-1},"Automatic wide events, structured errors, and logging in TanStack Start API routes and server functions.",1776278205305]