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