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