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