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