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