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