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