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