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