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