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