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