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