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