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