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