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