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