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