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