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