[{"data":1,"prerenderedAt":2679},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-enrichers":529,"-use-cases-enrichers-surround":2674},[4,30,80,128,308,440,499],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"CLI","\u002Fcli","3.cli",[85,88,93,98,103,108,113,118,123],{"title":36,"path":86,"stem":87,"icon":44},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":89,"path":90,"stem":91,"icon":92},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":94,"path":95,"stem":96,"icon":97},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":99,"path":100,"stem":101,"icon":102},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":104,"path":105,"stem":106,"icon":107},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":109,"path":110,"stem":111,"icon":112},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":119,"path":120,"stem":121,"icon":122},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":124,"path":125,"stem":126,"icon":127},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":129,"path":130,"stem":131,"children":132,"page":29},"Integrate","\u002Fintegrate","4.integrate",[133,137,220],{"title":36,"path":134,"stem":135,"icon":136},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":138,"path":139,"stem":140,"children":141,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[142,145,175,200],{"title":36,"path":143,"stem":144,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":146,"path":147,"stem":148,"children":149,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[150,155,160,165,170],{"title":151,"path":152,"stem":153,"icon":154},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":156,"path":157,"stem":158,"icon":159},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":161,"path":162,"stem":163,"icon":164},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":166,"path":167,"stem":168,"icon":169},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":171,"path":172,"stem":173,"icon":174},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":176,"path":177,"stem":178,"children":179,"page":29},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[180,185,190,195],{"title":181,"path":182,"stem":183,"icon":184},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":186,"path":187,"stem":188,"icon":189},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":191,"path":192,"stem":193,"icon":194},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":196,"path":197,"stem":198,"icon":199},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":201,"path":202,"stem":203,"children":204,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[205,210,215],{"title":206,"path":207,"stem":208,"icon":209},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":211,"path":212,"stem":213,"icon":214},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":216,"path":217,"stem":218,"icon":219},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":221,"path":222,"stem":223,"children":224,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[225,229,234,239,244,249,254,259,264,269,274,279,284,289,293,298,303],{"title":36,"path":226,"stem":227,"icon":228},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":230,"path":231,"stem":232,"icon":233},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":235,"path":236,"stem":237,"icon":238},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":240,"path":241,"stem":242,"icon":243},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":245,"path":246,"stem":247,"icon":248},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":250,"path":251,"stem":252,"icon":253},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":255,"path":256,"stem":257,"icon":258},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":260,"path":261,"stem":262,"icon":263},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":265,"path":266,"stem":267,"icon":268},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":270,"path":271,"stem":272,"icon":273},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":275,"path":276,"stem":277,"icon":278},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":280,"path":281,"stem":282,"icon":283},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":285,"path":286,"stem":287,"icon":288},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":290,"path":291,"stem":292,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":294,"path":295,"stem":296,"icon":297},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":299,"path":300,"stem":301,"icon":302},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":304,"path":305,"stem":306,"icon":307},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":309,"path":310,"stem":311,"children":312,"page":29},"Use Cases","\u002Fuse-cases","5.use-cases",[313,316,321,350,377,409,430,435],{"title":36,"path":314,"stem":315,"icon":102},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":317,"path":318,"stem":319,"icon":320},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":322,"icon":323,"path":324,"stem":325,"children":326,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[327,330,335,340,345],{"title":36,"path":328,"stem":329,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":331,"path":332,"stem":333,"icon":334},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":336,"path":337,"stem":338,"icon":339},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":341,"path":342,"stem":343,"icon":344},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":346,"path":347,"stem":348,"icon":349},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":351,"icon":352,"path":353,"stem":354,"children":355,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[356,359,364,369,373],{"title":36,"path":357,"stem":358,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":360,"path":361,"stem":362,"icon":363},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":365,"path":366,"stem":367,"icon":368},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":370,"path":371,"stem":372,"icon":320},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":374,"path":375,"stem":376,"icon":107},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":378,"icon":379,"path":380,"stem":381,"children":382,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[383,386,391,396,401,405],{"title":36,"path":384,"stem":385,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":387,"path":388,"stem":389,"icon":390},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":392,"path":393,"stem":394,"icon":395},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":397,"path":398,"stem":399,"icon":400},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":402,"path":403,"stem":404,"icon":379},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":406,"path":407,"stem":408,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":346,"icon":107,"path":410,"stem":411,"children":412,"page":29},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[413,416,421,426],{"title":36,"path":414,"stem":415,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":417,"path":418,"stem":419,"icon":420},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":422,"path":423,"stem":424,"icon":425},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":427,"path":428,"stem":429,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":431,"path":432,"stem":433,"icon":434},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":436,"path":437,"stem":438,"icon":439},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":441,"path":442,"stem":443,"children":444,"page":29},"Extend","\u002Fextend","6.extend",[445,449,454,459,463,468,472,476,480,484,489,494],{"title":36,"path":446,"stem":447,"icon":448},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":450,"path":451,"stem":452,"icon":453},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":455,"path":456,"stem":457,"icon":458},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":460,"path":461,"stem":462,"icon":453},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":464,"path":465,"stem":466,"icon":467},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":406,"path":469,"stem":470,"icon":471},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":473,"path":474,"stem":475,"icon":448},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":477,"path":478,"stem":479,"icon":434},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":481,"path":482,"stem":483,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":485,"path":486,"stem":487,"icon":488},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":490,"path":491,"stem":492,"icon":493},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":495,"path":496,"stem":497,"icon":498},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":427,"path":500,"stem":501,"children":502,"page":29},"\u002Freference","7.reference",[503,508,511,516,520,525],{"title":504,"path":505,"stem":506,"icon":507},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":374,"path":509,"stem":510,"icon":107},"\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":379},"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":434},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"id":530,"title":431,"body":531,"description":2664,"extension":2665,"links":2666,"meta":2670,"navigation":2671,"path":432,"seo":2672,"stem":433,"__hash__":2673},"docs\u002F5.use-cases\u002F5.enrichers.md",{"type":532,"value":533,"toc":2655},"minimark",[534,538,555,595,670,675,682,806,817,821,828,838,857,862,1020,1025,1213,1219,1225,1229,1232,1239,1258,1262,1354,1359,1421,1457,1461,1468,1475,1494,1498,1541,1545,1606,1615,1619,1629,1642,1661,1665,1732,1736,1861,1868,1880,1884,1887,2634,2638,2651],[535,536,537],"p",{},"Enrichers add derived context to your wide events after they are emitted, before they reach your drain adapters. Use them to automatically extract useful information from request headers without cluttering your application code.",[535,539,540,541,545,546,549,550,554],{},"All built-in enrichers are exported from ",[542,543,544],"code",{},"evlog\u002Fenrichers",". Each enricher is a factory function that returns an ",[542,547,548],{},"(ctx: EnrichContext) => void"," callback. To write your own, see ",[551,552,553],"a",{"href":478},"Custom Enrichers",".",[556,557,560,563,582],"prompt",{":actions":558,"description":559,"icon":458},"[\"copy\",\"cursor\",\"claude\"]","Add all built-in evlog enrichers",[535,561,562],{},"Add all built-in enrichers to my evlog setup.",[564,565,566,570,573,576,579],"ol",{},[567,568,569],"li",{},"Identify which framework I'm using and follow its evlog integration pattern",[567,571,572],{},"Import createUserAgentEnricher, createGeoEnricher, createRequestSizeEnricher, and createTraceContextEnricher from 'evlog\u002Fenrichers'",[567,574,575],{},"Wire the enrichers into my framework's enrich configuration",[567,577,578],{},"Enrichers add userAgent, geo, requestSize, and traceContext fields to wide events",[567,580,581],{},"All enrichers accept { overwrite?: boolean } - defaults to false to preserve user-set data",[535,583,584,585,590,591],{},"Enricher docs: ",[551,586,587],{"href":587,"rel":588},"https:\u002F\u002Fwww.evlog.dev\u002Fuse-cases\u002Fenrichers",[589],"nofollow","\nFramework setup: ",[551,592,593],{"href":593,"rel":594},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fframeworks\u002Foverview",[589],[596,597,603],"pre",{"className":598,"code":599,"filename":600,"language":601,"meta":602,"style":602},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n","server\u002Fplugins\u002Fevlog-enrich.ts","typescript","",[542,604,605,618,628,636,644,652],{"__ignoreMap":602},[606,607,610,614],"span",{"class":608,"line":609},"line",1,[606,611,613],{"class":612},"s7zQu","import",[606,615,617],{"class":616},"sMK4o"," {\n",[606,619,621,625],{"class":608,"line":620},2,[606,622,624],{"class":623},"sTEyZ","  createUserAgentEnricher",[606,626,627],{"class":616},",\n",[606,629,631,634],{"class":608,"line":630},3,[606,632,633],{"class":623},"  createGeoEnricher",[606,635,627],{"class":616},[606,637,639,642],{"class":608,"line":638},4,[606,640,641],{"class":623},"  createRequestSizeEnricher",[606,643,627],{"class":616},[606,645,647,650],{"class":608,"line":646},5,[606,648,649],{"class":623},"  createTraceContextEnricher",[606,651,627],{"class":616},[606,653,655,658,661,664,667],{"class":608,"line":654},6,[606,656,657],{"class":616},"}",[606,659,660],{"class":612}," from",[606,662,663],{"class":616}," '",[606,665,544],{"class":666},"sfazB",[606,668,669],{"class":616},"'\n",[671,672,674],"h2",{"id":673},"all-built-in-enrichers","All built-in enrichers",[535,676,677,678,681],{},"Use ",[542,679,680],{},"createDefaultEnrichers()"," to compose user agent, geo, request size, and trace context in one call:",[596,683,685],{"className":598,"code":684,"filename":600,"language":601,"meta":602,"style":602},"import { createDefaultEnrichers } from 'evlog\u002Fenrichers'\n\nconst enrich = createDefaultEnrichers()\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:enrich', enrich)\n})\n",[542,686,687,708,714,732,736,764,799],{"__ignoreMap":602},[606,688,689,691,694,697,700,702,704,706],{"class":608,"line":609},[606,690,613],{"class":612},[606,692,693],{"class":616}," {",[606,695,696],{"class":623}," createDefaultEnrichers",[606,698,699],{"class":616}," }",[606,701,660],{"class":612},[606,703,663],{"class":616},[606,705,544],{"class":666},[606,707,669],{"class":616},[606,709,710],{"class":608,"line":620},[606,711,713],{"emptyLinePlaceholder":712},true,"\n",[606,715,716,720,723,726,729],{"class":608,"line":630},[606,717,719],{"class":718},"spNyl","const",[606,721,722],{"class":623}," enrich ",[606,724,725],{"class":616},"=",[606,727,696],{"class":728},"s2Zo4",[606,730,731],{"class":623},"()\n",[606,733,734],{"class":608,"line":638},[606,735,713],{"emptyLinePlaceholder":712},[606,737,738,741,744,747,750,752,756,759,762],{"class":608,"line":646},[606,739,740],{"class":612},"export",[606,742,743],{"class":612}," default",[606,745,746],{"class":728}," defineNitroPlugin",[606,748,749],{"class":623},"(",[606,751,749],{"class":616},[606,753,755],{"class":754},"sHdIc","nitroApp",[606,757,758],{"class":616},")",[606,760,761],{"class":718}," =>",[606,763,617],{"class":616},[606,765,766,769,771,774,776,779,782,785,788,790,793,796],{"class":608,"line":654},[606,767,768],{"class":623},"  nitroApp",[606,770,554],{"class":616},[606,772,773],{"class":623},"hooks",[606,775,554],{"class":616},[606,777,778],{"class":728},"hook",[606,780,749],{"class":781},"swJcz",[606,783,784],{"class":616},"'",[606,786,787],{"class":666},"evlog:enrich",[606,789,784],{"class":616},[606,791,792],{"class":616},",",[606,794,795],{"class":623}," enrich",[606,797,798],{"class":781},")\n",[606,800,802,804],{"class":608,"line":801},7,[606,803,657],{"class":616},[606,805,798],{"class":623},[535,807,808,809,812,813,816],{},"Each enricher accepts ",[542,810,811],{},"{ overwrite?: boolean }"," (default ",[542,814,815],{},"false",") so user-set fields are preserved.",[671,818,820],{"id":819},"user-agent","User Agent",[535,822,823,824,827],{},"Parse browser, OS, and device type from the ",[542,825,826],{},"User-Agent"," header.",[535,829,830,834,835],{},[831,832,833],"strong",{},"Sets:"," ",[542,836,837],{},"event.userAgent",[596,839,842],{"className":598,"code":840,"filename":841,"language":601,"meta":602,"style":602},"const enrich = createUserAgentEnricher()\n","user-agent-enricher.ts",[542,843,844],{"__ignoreMap":602},[606,845,846,848,850,852,855],{"class":608,"line":609},[606,847,719],{"class":718},[606,849,722],{"class":623},[606,851,725],{"class":616},[606,853,854],{"class":728}," createUserAgentEnricher",[606,856,731],{"class":623},[535,858,859],{},[831,860,861],{},"Output shape:",[596,863,866],{"className":598,"code":864,"filename":865,"language":601,"meta":602,"style":602},"interface UserAgentInfo {\n  raw: string                                      \u002F\u002F Original User-Agent string\n  browser?: { name: string; version?: string }     \u002F\u002F Chrome, Firefox, Safari, Edge\n  os?: { name: string; version?: string }          \u002F\u002F Windows, macOS, iOS, Android, Linux\n  device?: { type: 'mobile' | 'tablet' | 'desktop' | 'bot' | 'unknown' }\n}\n","user-agent-types.ts",[542,867,868,879,894,926,954,1015],{"__ignoreMap":602},[606,869,870,873,877],{"class":608,"line":609},[606,871,872],{"class":718},"interface",[606,874,876],{"class":875},"sBMFI"," UserAgentInfo",[606,878,617],{"class":616},[606,880,881,884,887,890],{"class":608,"line":620},[606,882,883],{"class":781},"  raw",[606,885,886],{"class":616},":",[606,888,889],{"class":875}," string",[606,891,893],{"class":892},"sHwdD","                                      \u002F\u002F Original User-Agent string\n",[606,895,896,899,902,904,907,909,911,914,917,919,921,923],{"class":608,"line":630},[606,897,898],{"class":781},"  browser",[606,900,901],{"class":616},"?:",[606,903,693],{"class":616},[606,905,906],{"class":781}," name",[606,908,886],{"class":616},[606,910,889],{"class":875},[606,912,913],{"class":616},";",[606,915,916],{"class":781}," version",[606,918,901],{"class":616},[606,920,889],{"class":875},[606,922,699],{"class":616},[606,924,925],{"class":892},"     \u002F\u002F Chrome, Firefox, Safari, Edge\n",[606,927,928,931,933,935,937,939,941,943,945,947,949,951],{"class":608,"line":638},[606,929,930],{"class":781},"  os",[606,932,901],{"class":616},[606,934,693],{"class":616},[606,936,906],{"class":781},[606,938,886],{"class":616},[606,940,889],{"class":875},[606,942,913],{"class":616},[606,944,916],{"class":781},[606,946,901],{"class":616},[606,948,889],{"class":875},[606,950,699],{"class":616},[606,952,953],{"class":892},"          \u002F\u002F Windows, macOS, iOS, Android, Linux\n",[606,955,956,959,961,963,966,968,970,973,975,978,980,983,985,987,989,992,994,996,998,1001,1003,1005,1007,1010,1012],{"class":608,"line":646},[606,957,958],{"class":781},"  device",[606,960,901],{"class":616},[606,962,693],{"class":616},[606,964,965],{"class":781}," type",[606,967,886],{"class":616},[606,969,663],{"class":616},[606,971,972],{"class":666},"mobile",[606,974,784],{"class":616},[606,976,977],{"class":616}," |",[606,979,663],{"class":616},[606,981,982],{"class":666},"tablet",[606,984,784],{"class":616},[606,986,977],{"class":616},[606,988,663],{"class":616},[606,990,991],{"class":666},"desktop",[606,993,784],{"class":616},[606,995,977],{"class":616},[606,997,663],{"class":616},[606,999,1000],{"class":666},"bot",[606,1002,784],{"class":616},[606,1004,977],{"class":616},[606,1006,663],{"class":616},[606,1008,1009],{"class":666},"unknown",[606,1011,784],{"class":616},[606,1013,1014],{"class":616}," }\n",[606,1016,1017],{"class":608,"line":654},[606,1018,1019],{"class":616},"}\n",[535,1021,1022],{},[831,1023,1024],{},"Example output:",[596,1026,1031],{"className":1027,"code":1028,"filename":1029,"language":1030,"meta":602,"style":602},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"userAgent\": {\n    \"raw\": \"Mozilla\u002F5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\u002F537.36 Chrome\u002F120.0.0.0\",\n    \"browser\": { \"name\": \"Chrome\", \"version\": \"120.0.0.0\" },\n    \"os\": { \"name\": \"macOS\", \"version\": \"10.15.7\" },\n    \"device\": { \"type\": \"desktop\" }\n  }\n}\n","Example wide event: userAgent","json",[542,1032,1033,1038,1053,1075,1126,1173,1203,1208],{"__ignoreMap":602},[606,1034,1035],{"class":608,"line":609},[606,1036,1037],{"class":616},"{\n",[606,1039,1040,1043,1046,1049,1051],{"class":608,"line":620},[606,1041,1042],{"class":616},"  \"",[606,1044,1045],{"class":718},"userAgent",[606,1047,1048],{"class":616},"\"",[606,1050,886],{"class":616},[606,1052,617],{"class":616},[606,1054,1055,1058,1061,1063,1065,1068,1071,1073],{"class":608,"line":630},[606,1056,1057],{"class":616},"    \"",[606,1059,1060],{"class":875},"raw",[606,1062,1048],{"class":616},[606,1064,886],{"class":616},[606,1066,1067],{"class":616}," \"",[606,1069,1070],{"class":666},"Mozilla\u002F5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\u002F537.36 Chrome\u002F120.0.0.0",[606,1072,1048],{"class":616},[606,1074,627],{"class":616},[606,1076,1077,1079,1082,1084,1086,1088,1090,1094,1096,1098,1100,1103,1105,1107,1109,1112,1114,1116,1118,1121,1123],{"class":608,"line":638},[606,1078,1057],{"class":616},[606,1080,1081],{"class":875},"browser",[606,1083,1048],{"class":616},[606,1085,886],{"class":616},[606,1087,693],{"class":616},[606,1089,1067],{"class":616},[606,1091,1093],{"class":1092},"sbssI","name",[606,1095,1048],{"class":616},[606,1097,886],{"class":616},[606,1099,1067],{"class":616},[606,1101,1102],{"class":666},"Chrome",[606,1104,1048],{"class":616},[606,1106,792],{"class":616},[606,1108,1067],{"class":616},[606,1110,1111],{"class":1092},"version",[606,1113,1048],{"class":616},[606,1115,886],{"class":616},[606,1117,1067],{"class":616},[606,1119,1120],{"class":666},"120.0.0.0",[606,1122,1048],{"class":616},[606,1124,1125],{"class":616}," },\n",[606,1127,1128,1130,1133,1135,1137,1139,1141,1143,1145,1147,1149,1152,1154,1156,1158,1160,1162,1164,1166,1169,1171],{"class":608,"line":646},[606,1129,1057],{"class":616},[606,1131,1132],{"class":875},"os",[606,1134,1048],{"class":616},[606,1136,886],{"class":616},[606,1138,693],{"class":616},[606,1140,1067],{"class":616},[606,1142,1093],{"class":1092},[606,1144,1048],{"class":616},[606,1146,886],{"class":616},[606,1148,1067],{"class":616},[606,1150,1151],{"class":666},"macOS",[606,1153,1048],{"class":616},[606,1155,792],{"class":616},[606,1157,1067],{"class":616},[606,1159,1111],{"class":1092},[606,1161,1048],{"class":616},[606,1163,886],{"class":616},[606,1165,1067],{"class":616},[606,1167,1168],{"class":666},"10.15.7",[606,1170,1048],{"class":616},[606,1172,1125],{"class":616},[606,1174,1175,1177,1180,1182,1184,1186,1188,1191,1193,1195,1197,1199,1201],{"class":608,"line":654},[606,1176,1057],{"class":616},[606,1178,1179],{"class":875},"device",[606,1181,1048],{"class":616},[606,1183,886],{"class":616},[606,1185,693],{"class":616},[606,1187,1067],{"class":616},[606,1189,1190],{"class":1092},"type",[606,1192,1048],{"class":616},[606,1194,886],{"class":616},[606,1196,1067],{"class":616},[606,1198,991],{"class":666},[606,1200,1048],{"class":616},[606,1202,1014],{"class":616},[606,1204,1205],{"class":608,"line":801},[606,1206,1207],{"class":616},"  }\n",[606,1209,1211],{"class":608,"line":1210},8,[606,1212,1019],{"class":616},[535,1214,1215,1218],{},[831,1216,1217],{},"Detected browsers:"," Edge, Chrome, Firefox, Safari (checked in order, Edge before Chrome to avoid false matches).",[535,1220,1221,1224],{},[831,1222,1223],{},"Detected devices:"," Bot (crawlers, spiders), Tablet (iPad), Mobile (iPhone, Android phones), Desktop (fallback).",[671,1226,1228],{"id":1227},"geo","Geo",[535,1230,1231],{},"Extract geographic data from platform-injected headers.",[535,1233,1234,834,1236],{},[831,1235,833],{},[542,1237,1238],{},"event.geo",[596,1240,1243],{"className":598,"code":1241,"filename":1242,"language":601,"meta":602,"style":602},"const enrich = createGeoEnricher()\n","geo-enricher.ts",[542,1244,1245],{"__ignoreMap":602},[606,1246,1247,1249,1251,1253,1256],{"class":608,"line":609},[606,1248,719],{"class":718},[606,1250,722],{"class":623},[606,1252,725],{"class":616},[606,1254,1255],{"class":728}," createGeoEnricher",[606,1257,731],{"class":623},[535,1259,1260],{},[831,1261,861],{},[596,1263,1266],{"className":598,"code":1264,"filename":1265,"language":601,"meta":602,"style":602},"interface GeoInfo {\n  country?: string      \u002F\u002F ISO country code (e.g., \"US\", \"FR\")\n  region?: string       \u002F\u002F Region\u002Fstate name\n  regionCode?: string   \u002F\u002F Region code\n  city?: string         \u002F\u002F City name\n  latitude?: number     \u002F\u002F Decimal latitude\n  longitude?: number    \u002F\u002F Decimal longitude\n}\n","geo-types.ts",[542,1267,1268,1277,1289,1301,1313,1325,1338,1350],{"__ignoreMap":602},[606,1269,1270,1272,1275],{"class":608,"line":609},[606,1271,872],{"class":718},[606,1273,1274],{"class":875}," GeoInfo",[606,1276,617],{"class":616},[606,1278,1279,1282,1284,1286],{"class":608,"line":620},[606,1280,1281],{"class":781},"  country",[606,1283,901],{"class":616},[606,1285,889],{"class":875},[606,1287,1288],{"class":892},"      \u002F\u002F ISO country code (e.g., \"US\", \"FR\")\n",[606,1290,1291,1294,1296,1298],{"class":608,"line":630},[606,1292,1293],{"class":781},"  region",[606,1295,901],{"class":616},[606,1297,889],{"class":875},[606,1299,1300],{"class":892},"       \u002F\u002F Region\u002Fstate name\n",[606,1302,1303,1306,1308,1310],{"class":608,"line":638},[606,1304,1305],{"class":781},"  regionCode",[606,1307,901],{"class":616},[606,1309,889],{"class":875},[606,1311,1312],{"class":892},"   \u002F\u002F Region code\n",[606,1314,1315,1318,1320,1322],{"class":608,"line":646},[606,1316,1317],{"class":781},"  city",[606,1319,901],{"class":616},[606,1321,889],{"class":875},[606,1323,1324],{"class":892},"         \u002F\u002F City name\n",[606,1326,1327,1330,1332,1335],{"class":608,"line":654},[606,1328,1329],{"class":781},"  latitude",[606,1331,901],{"class":616},[606,1333,1334],{"class":875}," number",[606,1336,1337],{"class":892},"     \u002F\u002F Decimal latitude\n",[606,1339,1340,1343,1345,1347],{"class":608,"line":801},[606,1341,1342],{"class":781},"  longitude",[606,1344,901],{"class":616},[606,1346,1334],{"class":875},[606,1348,1349],{"class":892},"    \u002F\u002F Decimal longitude\n",[606,1351,1352],{"class":608,"line":1210},[606,1353,1019],{"class":616},[535,1355,1356],{},[831,1357,1358],{},"Supported platforms:",[1360,1361,1362,1378],"table",{},[1363,1364,1365],"thead",{},[1366,1367,1368,1372,1375],"tr",{},[1369,1370,1371],"th",{},"Platform",[1369,1373,1374],{},"Headers",[1369,1376,1377],{},"Coverage",[1379,1380,1381,1408],"tbody",{},[1366,1382,1383,1387,1405],{},[1384,1385,1386],"td",{},"Vercel",[1384,1388,1389,1392,1393,1392,1396,1392,1399,1392,1402],{},[542,1390,1391],{},"x-vercel-ip-country",", ",[542,1394,1395],{},"x-vercel-ip-country-region",[542,1397,1398],{},"x-vercel-ip-city",[542,1400,1401],{},"x-vercel-ip-latitude",[542,1403,1404],{},"x-vercel-ip-longitude",[1384,1406,1407],{},"Full",[1366,1409,1410,1413,1418],{},[1384,1411,1412],{},"Cloudflare",[1384,1414,1415],{},[542,1416,1417],{},"cf-ipcountry",[1384,1419,1420],{},"Country only",[1422,1423,1425,1428,1429,1431,1432,1392,1435,1392,1438,1441,1442,1445,1446,1449,1450,1452,1453,1456],"callout",{"color":1424,"icon":13},"info",[831,1426,1427],{},"Cloudflare note:"," Only ",[542,1430,1417],{}," is a standard Cloudflare HTTP header. Other geo fields (",[542,1433,1434],{},"city",[542,1436,1437],{},"region",[542,1439,1440],{},"latitude",", etc.) are properties of ",[542,1443,1444],{},"request.cf",", which is not exposed as headers. For full Cloudflare geo data, write a ",[551,1447,1448],{"href":478},"custom enricher"," that reads ",[542,1451,1444],{},", or use a Workers middleware to copy ",[542,1454,1455],{},"cf"," properties into custom headers.",[671,1458,1460],{"id":1459},"request-size","Request Size",[535,1462,1463,1464,1467],{},"Capture request and response payload sizes from ",[542,1465,1466],{},"Content-Length"," headers.",[535,1469,1470,834,1472],{},[831,1471,833],{},[542,1473,1474],{},"event.requestSize",[596,1476,1479],{"className":598,"code":1477,"filename":1478,"language":601,"meta":602,"style":602},"const enrich = createRequestSizeEnricher()\n","request-size-enricher.ts",[542,1480,1481],{"__ignoreMap":602},[606,1482,1483,1485,1487,1489,1492],{"class":608,"line":609},[606,1484,719],{"class":718},[606,1486,722],{"class":623},[606,1488,725],{"class":616},[606,1490,1491],{"class":728}," createRequestSizeEnricher",[606,1493,731],{"class":623},[535,1495,1496],{},[831,1497,861],{},[596,1499,1502],{"className":598,"code":1500,"filename":1501,"language":601,"meta":602,"style":602},"interface RequestSizeInfo {\n  requestBytes?: number    \u002F\u002F Request Content-Length\n  responseBytes?: number   \u002F\u002F Response Content-Length\n}\n","request-size-types.ts",[542,1503,1504,1513,1525,1537],{"__ignoreMap":602},[606,1505,1506,1508,1511],{"class":608,"line":609},[606,1507,872],{"class":718},[606,1509,1510],{"class":875}," RequestSizeInfo",[606,1512,617],{"class":616},[606,1514,1515,1518,1520,1522],{"class":608,"line":620},[606,1516,1517],{"class":781},"  requestBytes",[606,1519,901],{"class":616},[606,1521,1334],{"class":875},[606,1523,1524],{"class":892},"    \u002F\u002F Request Content-Length\n",[606,1526,1527,1530,1532,1534],{"class":608,"line":630},[606,1528,1529],{"class":781},"  responseBytes",[606,1531,901],{"class":616},[606,1533,1334],{"class":875},[606,1535,1536],{"class":892},"   \u002F\u002F Response Content-Length\n",[606,1538,1539],{"class":608,"line":638},[606,1540,1019],{"class":616},[535,1542,1543],{},[831,1544,1024],{},[596,1546,1549],{"className":1027,"code":1547,"filename":1548,"language":1030,"meta":602,"style":602},"{\n  \"requestSize\": {\n    \"requestBytes\": 1234,\n    \"responseBytes\": 5678\n  }\n}\n","Example wide event: requestSize",[542,1550,1551,1555,1568,1584,1598,1602],{"__ignoreMap":602},[606,1552,1553],{"class":608,"line":609},[606,1554,1037],{"class":616},[606,1556,1557,1559,1562,1564,1566],{"class":608,"line":620},[606,1558,1042],{"class":616},[606,1560,1561],{"class":718},"requestSize",[606,1563,1048],{"class":616},[606,1565,886],{"class":616},[606,1567,617],{"class":616},[606,1569,1570,1572,1575,1577,1579,1582],{"class":608,"line":630},[606,1571,1057],{"class":616},[606,1573,1574],{"class":875},"requestBytes",[606,1576,1048],{"class":616},[606,1578,886],{"class":616},[606,1580,1581],{"class":1092}," 1234",[606,1583,627],{"class":616},[606,1585,1586,1588,1591,1593,1595],{"class":608,"line":638},[606,1587,1057],{"class":616},[606,1589,1590],{"class":875},"responseBytes",[606,1592,1048],{"class":616},[606,1594,886],{"class":616},[606,1596,1597],{"class":1092}," 5678\n",[606,1599,1600],{"class":608,"line":646},[606,1601,1207],{"class":616},[606,1603,1604],{"class":608,"line":654},[606,1605,1019],{"class":616},[1422,1607,1608,1609,1611,1612,554],{"color":1424,"icon":13},"This enricher reads the ",[542,1610,1466],{}," header from both the request and response. If the header is missing (e.g., for chunked transfer encoding), the corresponding field will be ",[542,1613,1614],{},"undefined",[671,1616,1618],{"id":1617},"trace-context","Trace Context",[535,1620,1621,1622,1625,1626,1467],{},"Extract W3C trace context from the ",[542,1623,1624],{},"traceparent"," and ",[542,1627,1628],{},"tracestate",[535,1630,1631,834,1633,1392,1636,1392,1639],{},[831,1632,833],{},[542,1634,1635],{},"event.traceContext",[542,1637,1638],{},"event.traceId",[542,1640,1641],{},"event.spanId",[596,1643,1646],{"className":598,"code":1644,"filename":1645,"language":601,"meta":602,"style":602},"const enrich = createTraceContextEnricher()\n","trace-context-enricher.ts",[542,1647,1648],{"__ignoreMap":602},[606,1649,1650,1652,1654,1656,1659],{"class":608,"line":609},[606,1651,719],{"class":718},[606,1653,722],{"class":623},[606,1655,725],{"class":616},[606,1657,1658],{"class":728}," createTraceContextEnricher",[606,1660,731],{"class":623},[535,1662,1663],{},[831,1664,861],{},[596,1666,1669],{"className":598,"code":1667,"filename":1668,"language":601,"meta":602,"style":602},"interface TraceContextInfo {\n  traceparent?: string   \u002F\u002F Full traceparent header value\n  tracestate?: string    \u002F\u002F Full tracestate header value\n  traceId?: string       \u002F\u002F 32-char hex trace ID (parsed from traceparent)\n  spanId?: string        \u002F\u002F 16-char hex span ID (parsed from traceparent)\n}\n","trace-context-types.ts",[542,1670,1671,1680,1692,1704,1716,1728],{"__ignoreMap":602},[606,1672,1673,1675,1678],{"class":608,"line":609},[606,1674,872],{"class":718},[606,1676,1677],{"class":875}," TraceContextInfo",[606,1679,617],{"class":616},[606,1681,1682,1685,1687,1689],{"class":608,"line":620},[606,1683,1684],{"class":781},"  traceparent",[606,1686,901],{"class":616},[606,1688,889],{"class":875},[606,1690,1691],{"class":892},"   \u002F\u002F Full traceparent header value\n",[606,1693,1694,1697,1699,1701],{"class":608,"line":630},[606,1695,1696],{"class":781},"  tracestate",[606,1698,901],{"class":616},[606,1700,889],{"class":875},[606,1702,1703],{"class":892},"    \u002F\u002F Full tracestate header value\n",[606,1705,1706,1709,1711,1713],{"class":608,"line":638},[606,1707,1708],{"class":781},"  traceId",[606,1710,901],{"class":616},[606,1712,889],{"class":875},[606,1714,1715],{"class":892},"       \u002F\u002F 32-char hex trace ID (parsed from traceparent)\n",[606,1717,1718,1721,1723,1725],{"class":608,"line":646},[606,1719,1720],{"class":781},"  spanId",[606,1722,901],{"class":616},[606,1724,889],{"class":875},[606,1726,1727],{"class":892},"        \u002F\u002F 16-char hex span ID (parsed from traceparent)\n",[606,1729,1730],{"class":608,"line":654},[606,1731,1019],{"class":616},[535,1733,1734],{},[831,1735,1024],{},[596,1737,1740],{"className":1027,"code":1738,"filename":1739,"language":1030,"meta":602,"style":602},"{\n  \"traceContext\": {\n    \"traceparent\": \"00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01\",\n    \"traceId\": \"4bf92f3577b34da6a3ce929d0e0e4736\",\n    \"spanId\": \"00f067aa0ba902b7\"\n  },\n  \"traceId\": \"4bf92f3577b34da6a3ce929d0e0e4736\",\n  \"spanId\": \"00f067aa0ba902b7\"\n}\n","Example wide event: traceContext",[542,1741,1742,1746,1759,1778,1798,1817,1822,1840,1856],{"__ignoreMap":602},[606,1743,1744],{"class":608,"line":609},[606,1745,1037],{"class":616},[606,1747,1748,1750,1753,1755,1757],{"class":608,"line":620},[606,1749,1042],{"class":616},[606,1751,1752],{"class":718},"traceContext",[606,1754,1048],{"class":616},[606,1756,886],{"class":616},[606,1758,617],{"class":616},[606,1760,1761,1763,1765,1767,1769,1771,1774,1776],{"class":608,"line":630},[606,1762,1057],{"class":616},[606,1764,1624],{"class":875},[606,1766,1048],{"class":616},[606,1768,886],{"class":616},[606,1770,1067],{"class":616},[606,1772,1773],{"class":666},"00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",[606,1775,1048],{"class":616},[606,1777,627],{"class":616},[606,1779,1780,1782,1785,1787,1789,1791,1794,1796],{"class":608,"line":638},[606,1781,1057],{"class":616},[606,1783,1784],{"class":875},"traceId",[606,1786,1048],{"class":616},[606,1788,886],{"class":616},[606,1790,1067],{"class":616},[606,1792,1793],{"class":666},"4bf92f3577b34da6a3ce929d0e0e4736",[606,1795,1048],{"class":616},[606,1797,627],{"class":616},[606,1799,1800,1802,1805,1807,1809,1811,1814],{"class":608,"line":646},[606,1801,1057],{"class":616},[606,1803,1804],{"class":875},"spanId",[606,1806,1048],{"class":616},[606,1808,886],{"class":616},[606,1810,1067],{"class":616},[606,1812,1813],{"class":666},"00f067aa0ba902b7",[606,1815,1816],{"class":616},"\"\n",[606,1818,1819],{"class":608,"line":654},[606,1820,1821],{"class":616},"  },\n",[606,1823,1824,1826,1828,1830,1832,1834,1836,1838],{"class":608,"line":801},[606,1825,1042],{"class":616},[606,1827,1784],{"class":718},[606,1829,1048],{"class":616},[606,1831,886],{"class":616},[606,1833,1067],{"class":616},[606,1835,1793],{"class":666},[606,1837,1048],{"class":616},[606,1839,627],{"class":616},[606,1841,1842,1844,1846,1848,1850,1852,1854],{"class":608,"line":1210},[606,1843,1042],{"class":616},[606,1845,1804],{"class":718},[606,1847,1048],{"class":616},[606,1849,886],{"class":616},[606,1851,1067],{"class":616},[606,1853,1813],{"class":666},[606,1855,1816],{"class":616},[606,1857,1859],{"class":608,"line":1858},9,[606,1860,1019],{"class":616},[535,1862,1863,1625,1865,1867],{},[542,1864,1784],{},[542,1866,1804],{}," are also set at the top level of the event for easy querying and correlation.",[1422,1869,1870,1871,1876,1877,554],{"color":1424,"icon":13},"The traceparent format follows the ",[551,1872,1875],{"href":1873,"rel":1874},"https:\u002F\u002Fwww.w3.org\u002FTR\u002Ftrace-context\u002F",[589],"W3C Trace Context"," specification: ",[542,1878,1879],{},"{version}-{traceId}-{spanId}-{flags}",[671,1881,1883],{"id":1882},"full-setup-example","Full Setup Example",[535,1885,1886],{},"Use all built-in enrichers together. The list of enrichers is identical across frameworks — only the wiring changes.",[1888,1889,1890,2114,2348,2496],"code-group",{},[596,1891,1894],{"className":598,"code":1892,"filename":1893,"language":601,"meta":602,"style":602},"\u002F\u002F server\u002Fplugins\u002Fevlog-enrich.ts\nimport {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n\nexport default defineNitroPlugin((nitroApp) => {\n  const enrichers = [\n    createUserAgentEnricher(),\n    createGeoEnricher(),\n    createRequestSizeEnricher(),\n    createTraceContextEnricher(),\n  ]\n\n  nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n    for (const enricher of enrichers) enricher(ctx)\n  })\n})\n","Nuxt \u002F Nitro",[542,1895,1896,1901,1907,1913,1919,1925,1931,1943,1947,1967,1982,1993,2003,2013,2023,2029,2034,2069,2099,2107],{"__ignoreMap":602},[606,1897,1898],{"class":608,"line":609},[606,1899,1900],{"class":892},"\u002F\u002F server\u002Fplugins\u002Fevlog-enrich.ts\n",[606,1902,1903,1905],{"class":608,"line":620},[606,1904,613],{"class":612},[606,1906,617],{"class":616},[606,1908,1909,1911],{"class":608,"line":630},[606,1910,624],{"class":623},[606,1912,627],{"class":616},[606,1914,1915,1917],{"class":608,"line":638},[606,1916,633],{"class":623},[606,1918,627],{"class":616},[606,1920,1921,1923],{"class":608,"line":646},[606,1922,641],{"class":623},[606,1924,627],{"class":616},[606,1926,1927,1929],{"class":608,"line":654},[606,1928,649],{"class":623},[606,1930,627],{"class":616},[606,1932,1933,1935,1937,1939,1941],{"class":608,"line":801},[606,1934,657],{"class":616},[606,1936,660],{"class":612},[606,1938,663],{"class":616},[606,1940,544],{"class":666},[606,1942,669],{"class":616},[606,1944,1945],{"class":608,"line":1210},[606,1946,713],{"emptyLinePlaceholder":712},[606,1948,1949,1951,1953,1955,1957,1959,1961,1963,1965],{"class":608,"line":1858},[606,1950,740],{"class":612},[606,1952,743],{"class":612},[606,1954,746],{"class":728},[606,1956,749],{"class":623},[606,1958,749],{"class":616},[606,1960,755],{"class":754},[606,1962,758],{"class":616},[606,1964,761],{"class":718},[606,1966,617],{"class":616},[606,1968,1970,1973,1976,1979],{"class":608,"line":1969},10,[606,1971,1972],{"class":718},"  const",[606,1974,1975],{"class":623}," enrichers",[606,1977,1978],{"class":616}," =",[606,1980,1981],{"class":781}," [\n",[606,1983,1985,1988,1991],{"class":608,"line":1984},11,[606,1986,1987],{"class":728},"    createUserAgentEnricher",[606,1989,1990],{"class":781},"()",[606,1992,627],{"class":616},[606,1994,1996,1999,2001],{"class":608,"line":1995},12,[606,1997,1998],{"class":728},"    createGeoEnricher",[606,2000,1990],{"class":781},[606,2002,627],{"class":616},[606,2004,2006,2009,2011],{"class":608,"line":2005},13,[606,2007,2008],{"class":728},"    createRequestSizeEnricher",[606,2010,1990],{"class":781},[606,2012,627],{"class":616},[606,2014,2016,2019,2021],{"class":608,"line":2015},14,[606,2017,2018],{"class":728},"    createTraceContextEnricher",[606,2020,1990],{"class":781},[606,2022,627],{"class":616},[606,2024,2026],{"class":608,"line":2025},15,[606,2027,2028],{"class":781},"  ]\n",[606,2030,2032],{"class":608,"line":2031},16,[606,2033,713],{"emptyLinePlaceholder":712},[606,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2060,2063,2065,2067],{"class":608,"line":2036},17,[606,2038,768],{"class":623},[606,2040,554],{"class":616},[606,2042,773],{"class":623},[606,2044,554],{"class":616},[606,2046,778],{"class":728},[606,2048,749],{"class":781},[606,2050,784],{"class":616},[606,2052,787],{"class":666},[606,2054,784],{"class":616},[606,2056,792],{"class":616},[606,2058,2059],{"class":616}," (",[606,2061,2062],{"class":754},"ctx",[606,2064,758],{"class":616},[606,2066,761],{"class":718},[606,2068,617],{"class":616},[606,2070,2072,2075,2077,2079,2082,2085,2087,2090,2093,2095,2097],{"class":608,"line":2071},18,[606,2073,2074],{"class":612},"    for",[606,2076,2059],{"class":781},[606,2078,719],{"class":718},[606,2080,2081],{"class":623}," enricher",[606,2083,2084],{"class":616}," of",[606,2086,1975],{"class":623},[606,2088,2089],{"class":781},") ",[606,2091,2092],{"class":728},"enricher",[606,2094,749],{"class":781},[606,2096,2062],{"class":623},[606,2098,798],{"class":781},[606,2100,2102,2105],{"class":608,"line":2101},19,[606,2103,2104],{"class":616},"  }",[606,2106,798],{"class":781},[606,2108,2110,2112],{"class":608,"line":2109},20,[606,2111,657],{"class":616},[606,2113,798],{"class":623},[596,2115,2117],{"className":598,"code":2116,"filename":235,"language":601,"meta":602,"style":602},"\u002F\u002F lib\u002Fevlog.ts\nimport { createEvlog } from 'evlog\u002Fnext'\nimport {\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 const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  enrich: (ctx) => {\n    for (const enricher of enrichers) enricher(ctx)\n  },\n})\n",[542,2118,2119,2124,2144,2150,2156,2162,2168,2174,2186,2190,2201,2209,2217,2225,2233,2238,2242,2279,2295,2312,2336,2341],{"__ignoreMap":602},[606,2120,2121],{"class":608,"line":609},[606,2122,2123],{"class":892},"\u002F\u002F lib\u002Fevlog.ts\n",[606,2125,2126,2128,2130,2133,2135,2137,2139,2142],{"class":608,"line":620},[606,2127,613],{"class":612},[606,2129,693],{"class":616},[606,2131,2132],{"class":623}," createEvlog",[606,2134,699],{"class":616},[606,2136,660],{"class":612},[606,2138,663],{"class":616},[606,2140,2141],{"class":666},"evlog\u002Fnext",[606,2143,669],{"class":616},[606,2145,2146,2148],{"class":608,"line":630},[606,2147,613],{"class":612},[606,2149,617],{"class":616},[606,2151,2152,2154],{"class":608,"line":638},[606,2153,624],{"class":623},[606,2155,627],{"class":616},[606,2157,2158,2160],{"class":608,"line":646},[606,2159,633],{"class":623},[606,2161,627],{"class":616},[606,2163,2164,2166],{"class":608,"line":654},[606,2165,641],{"class":623},[606,2167,627],{"class":616},[606,2169,2170,2172],{"class":608,"line":801},[606,2171,649],{"class":623},[606,2173,627],{"class":616},[606,2175,2176,2178,2180,2182,2184],{"class":608,"line":1210},[606,2177,657],{"class":616},[606,2179,660],{"class":612},[606,2181,663],{"class":616},[606,2183,544],{"class":666},[606,2185,669],{"class":616},[606,2187,2188],{"class":608,"line":1858},[606,2189,713],{"emptyLinePlaceholder":712},[606,2191,2192,2194,2197,2199],{"class":608,"line":1969},[606,2193,719],{"class":718},[606,2195,2196],{"class":623}," enrichers ",[606,2198,725],{"class":616},[606,2200,1981],{"class":623},[606,2202,2203,2205,2207],{"class":608,"line":1984},[606,2204,624],{"class":728},[606,2206,1990],{"class":623},[606,2208,627],{"class":616},[606,2210,2211,2213,2215],{"class":608,"line":1995},[606,2212,633],{"class":728},[606,2214,1990],{"class":623},[606,2216,627],{"class":616},[606,2218,2219,2221,2223],{"class":608,"line":2005},[606,2220,641],{"class":728},[606,2222,1990],{"class":623},[606,2224,627],{"class":616},[606,2226,2227,2229,2231],{"class":608,"line":2015},[606,2228,649],{"class":728},[606,2230,1990],{"class":623},[606,2232,627],{"class":616},[606,2234,2235],{"class":608,"line":2025},[606,2236,2237],{"class":623},"]\n",[606,2239,2240],{"class":608,"line":2031},[606,2241,713],{"emptyLinePlaceholder":712},[606,2243,2244,2246,2249,2251,2254,2256,2259,2261,2264,2266,2269,2271,2273,2275,2277],{"class":608,"line":2036},[606,2245,740],{"class":612},[606,2247,2248],{"class":718}," const",[606,2250,693],{"class":616},[606,2252,2253],{"class":623}," withEvlog",[606,2255,792],{"class":616},[606,2257,2258],{"class":623}," useLogger",[606,2260,792],{"class":616},[606,2262,2263],{"class":623}," log",[606,2265,792],{"class":616},[606,2267,2268],{"class":623}," createError ",[606,2270,657],{"class":616},[606,2272,1978],{"class":616},[606,2274,2132],{"class":728},[606,2276,749],{"class":623},[606,2278,1037],{"class":616},[606,2280,2281,2284,2286,2288,2291,2293],{"class":608,"line":2071},[606,2282,2283],{"class":781},"  service",[606,2285,886],{"class":616},[606,2287,663],{"class":616},[606,2289,2290],{"class":666},"my-app",[606,2292,784],{"class":616},[606,2294,627],{"class":616},[606,2296,2297,2300,2302,2304,2306,2308,2310],{"class":608,"line":2101},[606,2298,2299],{"class":728},"  enrich",[606,2301,886],{"class":616},[606,2303,2059],{"class":616},[606,2305,2062],{"class":754},[606,2307,758],{"class":616},[606,2309,761],{"class":718},[606,2311,617],{"class":616},[606,2313,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334],{"class":608,"line":2109},[606,2315,2074],{"class":612},[606,2317,2059],{"class":781},[606,2319,719],{"class":718},[606,2321,2081],{"class":623},[606,2323,2084],{"class":616},[606,2325,1975],{"class":623},[606,2327,2089],{"class":781},[606,2329,2092],{"class":728},[606,2331,749],{"class":781},[606,2333,2062],{"class":623},[606,2335,798],{"class":781},[606,2337,2339],{"class":608,"line":2338},21,[606,2340,1821],{"class":616},[606,2342,2344,2346],{"class":608,"line":2343},22,[606,2345,657],{"class":616},[606,2347,798],{"class":623},[596,2349,2352],{"className":598,"code":2350,"filename":2351,"language":601,"meta":602,"style":602},"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\napp.use(evlog({ enrichers })) \u002F\u002F Hono \u002F Express \u002F Elysia\n\u002F\u002F await app.register(evlog, { enrichers }) \u002F\u002F Fastify\n\u002F\u002F EvlogModule.forRoot({ enrichers }) \u002F\u002F NestJS\n","Hono \u002F Express \u002F Fastify \u002F Elysia \u002F NestJS",[542,2353,2354,2360,2366,2372,2378,2384,2396,2400,2410,2418,2426,2434,2442,2446,2450,2480,2488],{"__ignoreMap":602},[606,2355,2356,2358],{"class":608,"line":609},[606,2357,613],{"class":612},[606,2359,617],{"class":616},[606,2361,2362,2364],{"class":608,"line":620},[606,2363,624],{"class":623},[606,2365,627],{"class":616},[606,2367,2368,2370],{"class":608,"line":630},[606,2369,633],{"class":623},[606,2371,627],{"class":616},[606,2373,2374,2376],{"class":608,"line":638},[606,2375,641],{"class":623},[606,2377,627],{"class":616},[606,2379,2380,2382],{"class":608,"line":646},[606,2381,649],{"class":623},[606,2383,627],{"class":616},[606,2385,2386,2388,2390,2392,2394],{"class":608,"line":654},[606,2387,657],{"class":616},[606,2389,660],{"class":612},[606,2391,663],{"class":616},[606,2393,544],{"class":666},[606,2395,669],{"class":616},[606,2397,2398],{"class":608,"line":801},[606,2399,713],{"emptyLinePlaceholder":712},[606,2401,2402,2404,2406,2408],{"class":608,"line":1210},[606,2403,719],{"class":718},[606,2405,2196],{"class":623},[606,2407,725],{"class":616},[606,2409,1981],{"class":623},[606,2411,2412,2414,2416],{"class":608,"line":1858},[606,2413,624],{"class":728},[606,2415,1990],{"class":623},[606,2417,627],{"class":616},[606,2419,2420,2422,2424],{"class":608,"line":1969},[606,2421,633],{"class":728},[606,2423,1990],{"class":623},[606,2425,627],{"class":616},[606,2427,2428,2430,2432],{"class":608,"line":1984},[606,2429,641],{"class":728},[606,2431,1990],{"class":623},[606,2433,627],{"class":616},[606,2435,2436,2438,2440],{"class":608,"line":1995},[606,2437,649],{"class":728},[606,2439,1990],{"class":623},[606,2441,627],{"class":616},[606,2443,2444],{"class":608,"line":2005},[606,2445,2237],{"class":623},[606,2447,2448],{"class":608,"line":2015},[606,2449,713],{"emptyLinePlaceholder":712},[606,2451,2452,2455,2457,2460,2462,2465,2467,2470,2472,2474,2477],{"class":608,"line":2025},[606,2453,2454],{"class":623},"app",[606,2456,554],{"class":616},[606,2458,2459],{"class":728},"use",[606,2461,749],{"class":623},[606,2463,2464],{"class":728},"evlog",[606,2466,749],{"class":623},[606,2468,2469],{"class":616},"{",[606,2471,2196],{"class":623},[606,2473,657],{"class":616},[606,2475,2476],{"class":623},")) ",[606,2478,2479],{"class":892},"\u002F\u002F Hono \u002F Express \u002F Elysia\n",[606,2481,2482,2485],{"class":608,"line":2031},[606,2483,2484],{"class":892},"\u002F\u002F await app.register(evlog, { enrichers })",[606,2486,2487],{"class":892}," \u002F\u002F Fastify\n",[606,2489,2490,2493],{"class":608,"line":2036},[606,2491,2492],{"class":892},"\u002F\u002F EvlogModule.forRoot({ enrichers })",[606,2494,2495],{"class":892}," \u002F\u002F NestJS\n",[596,2497,2499],{"className":598,"code":2498,"filename":290,"language":601,"meta":602,"style":602},"\u002F\u002F index.ts\nimport { initLogger } from 'evlog'\nimport {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n\ninitLogger({\n  enrichers: [\n    createUserAgentEnricher(),\n    createGeoEnricher(),\n    createRequestSizeEnricher(),\n    createTraceContextEnricher(),\n  ],\n})\n",[542,2500,2501,2506,2525,2531,2537,2543,2549,2555,2567,2571,2580,2589,2597,2605,2613,2621,2628],{"__ignoreMap":602},[606,2502,2503],{"class":608,"line":609},[606,2504,2505],{"class":892},"\u002F\u002F index.ts\n",[606,2507,2508,2510,2512,2515,2517,2519,2521,2523],{"class":608,"line":620},[606,2509,613],{"class":612},[606,2511,693],{"class":616},[606,2513,2514],{"class":623}," initLogger",[606,2516,699],{"class":616},[606,2518,660],{"class":612},[606,2520,663],{"class":616},[606,2522,2464],{"class":666},[606,2524,669],{"class":616},[606,2526,2527,2529],{"class":608,"line":630},[606,2528,613],{"class":612},[606,2530,617],{"class":616},[606,2532,2533,2535],{"class":608,"line":638},[606,2534,624],{"class":623},[606,2536,627],{"class":616},[606,2538,2539,2541],{"class":608,"line":646},[606,2540,633],{"class":623},[606,2542,627],{"class":616},[606,2544,2545,2547],{"class":608,"line":654},[606,2546,641],{"class":623},[606,2548,627],{"class":616},[606,2550,2551,2553],{"class":608,"line":801},[606,2552,649],{"class":623},[606,2554,627],{"class":616},[606,2556,2557,2559,2561,2563,2565],{"class":608,"line":1210},[606,2558,657],{"class":616},[606,2560,660],{"class":612},[606,2562,663],{"class":616},[606,2564,544],{"class":666},[606,2566,669],{"class":616},[606,2568,2569],{"class":608,"line":1858},[606,2570,713],{"emptyLinePlaceholder":712},[606,2572,2573,2576,2578],{"class":608,"line":1969},[606,2574,2575],{"class":728},"initLogger",[606,2577,749],{"class":623},[606,2579,1037],{"class":616},[606,2581,2582,2585,2587],{"class":608,"line":1984},[606,2583,2584],{"class":781},"  enrichers",[606,2586,886],{"class":616},[606,2588,1981],{"class":623},[606,2590,2591,2593,2595],{"class":608,"line":1995},[606,2592,1987],{"class":728},[606,2594,1990],{"class":623},[606,2596,627],{"class":616},[606,2598,2599,2601,2603],{"class":608,"line":2005},[606,2600,1998],{"class":728},[606,2602,1990],{"class":623},[606,2604,627],{"class":616},[606,2606,2607,2609,2611],{"class":608,"line":2015},[606,2608,2008],{"class":728},[606,2610,1990],{"class":623},[606,2612,627],{"class":616},[606,2614,2615,2617,2619],{"class":608,"line":2025},[606,2616,2018],{"class":728},[606,2618,1990],{"class":623},[606,2620,627],{"class":616},[606,2622,2623,2626],{"class":608,"line":2031},[606,2624,2625],{"class":623},"  ]",[606,2627,627],{"class":616},[606,2629,2630,2632],{"class":608,"line":2036},[606,2631,657],{"class":616},[606,2633,798],{"class":623},[671,2635,2637],{"id":2636},"next-steps","Next Steps",[2639,2640,2641,2646],"ul",{},[567,2642,2643,2645],{},[551,2644,553],{"href":478}," - Write your own enricher",[567,2647,2648,2650],{},[551,2649,138],{"href":143}," - Send enriched events to external services",[2652,2653,2654],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":602,"searchDepth":620,"depth":620,"links":2656},[2657,2658,2659,2660,2661,2662,2663],{"id":673,"depth":620,"text":674},{"id":819,"depth":620,"text":820},{"id":1227,"depth":620,"text":1228},{"id":1459,"depth":620,"text":1460},{"id":1617,"depth":620,"text":1618},{"id":1882,"depth":620,"text":1883},{"id":2636,"depth":620,"text":2637},"Add derived context to every wide event automatically — user agent, geo, request size, and trace context. Built-in enrichers from evlog\u002Fenrichers, plus how to compose them with your own.","md",[2667],{"label":553,"icon":334,"to":478,"color":2668,"variant":2669},"neutral","subtle",{},{"title":431,"icon":434},{"title":431,"description":2664},"AGGc0NeRlAw_tCIf58oiQocSRoW8YsL9Ba6BxysRiE4",[2675,2677],{"title":427,"path":428,"stem":429,"description":2676,"icon":79,"children":-1},"RunEvent envelope, extending the schema with collect and custom fields, privacy rules, TELEMETRY.md disclosure, and consent \u002F outbox reliability.",{"title":436,"path":437,"stem":438,"description":2678,"icon":439,"children":-1},"Export one evlog wide event per eve agent turn — token usage, tool executions, business context, drains, enrichers, and tail sampling alongside Agent Runs and OpenTelemetry.",1786119555073]