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