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