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