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