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