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