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