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