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