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