[{"data":1,"prerenderedAt":3502},["ShallowReactive",2],{"navigation_docs":3,"-integrate-adapters-overview":607,"-integrate-adapters-overview-surround":3497},[4,35,85,143,323,484,543,582],{"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,138],{"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},"logs","\u002Fcli\u002Flogs","3.cli\u002F10.logs","i-lucide-scroll-text",{"title":104,"path":105,"stem":106,"icon":107},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":109,"path":110,"stem":111,"icon":112},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":114,"path":115,"stem":116,"icon":117},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":119,"path":120,"stem":121,"icon":122},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":124,"path":125,"stem":126,"icon":127},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":129,"path":130,"stem":131,"icon":132},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":134,"path":135,"stem":136,"icon":137},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":139,"path":140,"stem":141,"icon":142},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":144,"path":145,"stem":146,"children":147,"page":34},"Integrate","\u002Fintegrate","4.integrate",[148,152,235],{"title":41,"path":149,"stem":150,"icon":151},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":153,"path":154,"stem":155,"children":156,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[157,160,190,215],{"title":41,"path":158,"stem":159,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":161,"path":162,"stem":163,"children":164,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[165,170,175,180,185],{"title":166,"path":167,"stem":168,"icon":169},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":171,"path":172,"stem":173,"icon":174},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":176,"path":177,"stem":178,"icon":179},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":181,"path":182,"stem":183,"icon":184},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":186,"path":187,"stem":188,"icon":189},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":191,"path":192,"stem":193,"children":194,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[195,200,205,210],{"title":196,"path":197,"stem":198,"icon":199},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":201,"path":202,"stem":203,"icon":204},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":206,"path":207,"stem":208,"icon":209},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":211,"path":212,"stem":213,"icon":214},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":216,"path":217,"stem":218,"children":219,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[220,225,230],{"title":221,"path":222,"stem":223,"icon":224},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":226,"path":227,"stem":228,"icon":229},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":231,"path":232,"stem":233,"icon":234},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":236,"path":237,"stem":238,"children":239,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[240,244,249,254,259,264,269,274,279,284,289,294,299,304,308,313,318],{"title":41,"path":241,"stem":242,"icon":243},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":245,"path":246,"stem":247,"icon":248},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":250,"path":251,"stem":252,"icon":253},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":255,"path":256,"stem":257,"icon":258},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":260,"path":261,"stem":262,"icon":263},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":265,"path":266,"stem":267,"icon":268},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":270,"path":271,"stem":272,"icon":273},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":275,"path":276,"stem":277,"icon":278},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":280,"path":281,"stem":282,"icon":283},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":285,"path":286,"stem":287,"icon":288},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":290,"path":291,"stem":292,"icon":293},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":295,"path":296,"stem":297,"icon":298},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":300,"path":301,"stem":302,"icon":303},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":305,"path":306,"stem":307,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":309,"path":310,"stem":311,"icon":312},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":314,"path":315,"stem":316,"icon":317},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":319,"path":320,"stem":321,"icon":322},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":324,"path":325,"stem":326,"children":327,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[328,331,336,364,391,423,444,449,454,458],{"title":41,"path":329,"stem":330,"icon":112},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":332,"path":333,"stem":334,"icon":335},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":337,"icon":338,"path":339,"stem":340,"children":341,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[342,345,350,355,360],{"title":41,"path":343,"stem":344,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":346,"path":347,"stem":348,"icon":349},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":351,"path":352,"stem":353,"icon":354},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":356,"path":357,"stem":358,"icon":359},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":361,"path":362,"stem":363,"icon":142},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":365,"icon":366,"path":367,"stem":368,"children":369,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[370,373,378,383,387],{"title":41,"path":371,"stem":372,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":374,"path":375,"stem":376,"icon":377},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":379,"path":380,"stem":381,"icon":382},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":384,"path":385,"stem":386,"icon":335},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":388,"path":389,"stem":390,"icon":117},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":392,"icon":393,"path":394,"stem":395,"children":396,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[397,400,405,410,415,419],{"title":41,"path":398,"stem":399,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":401,"path":402,"stem":403,"icon":404},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":406,"path":407,"stem":408,"icon":409},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":411,"path":412,"stem":413,"icon":414},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":416,"path":417,"stem":418,"icon":393},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":420,"path":421,"stem":422,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":361,"icon":117,"path":424,"stem":425,"children":426,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[427,430,435,440],{"title":41,"path":428,"stem":429,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":431,"path":432,"stem":433,"icon":434},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":436,"path":437,"stem":438,"icon":439},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":441,"path":442,"stem":443,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":445,"path":446,"stem":447,"icon":448},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":450,"path":451,"stem":452,"icon":453},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":455,"path":456,"stem":457,"icon":439},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":459,"icon":460,"path":461,"stem":462,"children":463,"page":34},"Signals","i-lucide-scan-search","\u002Fuse-cases\u002Fsignals","5.use-cases\u002F7.signals",[464,467,472,477,480],{"title":41,"path":465,"stem":466,"icon":44},"\u002Fuse-cases\u002Fsignals\u002Foverview","5.use-cases\u002F7.signals\u002F01.overview",{"title":468,"path":469,"stem":470,"icon":471},"What You Can Ask","\u002Fuse-cases\u002Fsignals\u002Fask","5.use-cases\u002F7.signals\u002F02.ask","i-lucide-message-circle-question",{"title":473,"path":474,"stem":475,"icon":476},"What It Costs","\u002Fuse-cases\u002Fsignals\u002Fcost","5.use-cases\u002F7.signals\u002F03.cost","i-lucide-coins",{"title":441,"path":478,"stem":479,"icon":84},"\u002Fuse-cases\u002Fsignals\u002Freference","5.use-cases\u002F7.signals\u002F04.reference",{"title":420,"path":481,"stem":482,"icon":483},"\u002Fuse-cases\u002Fsignals\u002Frecipes","5.use-cases\u002F7.signals\u002F05.recipes","i-lucide-lightbulb",{"title":485,"path":486,"stem":487,"children":488,"page":34},"Extend","\u002Fextend","6.extend",[489,493,498,503,507,512,516,520,524,528,533,538],{"title":41,"path":490,"stem":491,"icon":492},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":494,"path":495,"stem":496,"icon":497},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":499,"path":500,"stem":501,"icon":502},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":504,"path":505,"stem":506,"icon":497},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":508,"path":509,"stem":510,"icon":511},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":420,"path":513,"stem":514,"icon":515},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":517,"path":518,"stem":519,"icon":492},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":521,"path":522,"stem":523,"icon":448},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":525,"path":526,"stem":527,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":529,"path":530,"stem":531,"icon":532},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":534,"path":535,"stem":536,"icon":537},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":539,"path":540,"stem":541,"icon":542},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":441,"path":544,"stem":545,"children":546,"page":34},"\u002Freference","7.reference",[547,551,556,559,564,568,573,577],{"title":41,"path":548,"stem":549,"icon":550},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":552,"path":553,"stem":554,"icon":555},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":388,"path":557,"stem":558,"icon":117},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":560,"path":561,"stem":562,"icon":563},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":565,"path":566,"stem":567,"icon":393},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":569,"path":570,"stem":571,"icon":572},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":574,"path":575,"stem":576,"icon":448},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":578,"path":579,"stem":580,"icon":581},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"title":583,"path":584,"stem":585,"children":586,"page":34},"Compare","\u002Fcompare","8.compare",[587,591,595,599,603],{"title":588,"path":589,"stem":590,"icon":572},"evlog vs Pino","\u002Fcompare\u002Fpino","8.compare\u002F1.pino",{"title":592,"path":593,"stem":594,"icon":209},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","8.compare\u002F2.opentelemetry",{"title":596,"path":597,"stem":598,"icon":572},"evlog vs LogTape","\u002Fcompare\u002Flogtape","8.compare\u002F3.logtape",{"title":600,"path":601,"stem":602,"icon":572},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","8.compare\u002F4.winston",{"title":604,"path":605,"stem":606,"icon":572},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","8.compare\u002F5.consola",{"id":608,"title":609,"body":610,"description":3477,"extension":3478,"links":3479,"meta":3493,"navigation":3494,"path":158,"seo":3495,"stem":159,"__hash__":3496},"docs\u002F4.integrate\u002Fadapters\u002F01.overview.md","Adapters Overview",{"type":611,"value":612,"toc":3468},"minimark",[613,617,620,625,638,641,1776,1789,1793,1846,1850,1860,2204,2217,2221,2224,2366,2372,3046,3050,3056,3133,3150,3154,3157,3160,3406,3413,3417,3420,3461,3464],[614,615,616],"p",{},"Adapters let you send logs to external observability platforms. evlog provides built-in adapters for popular services, and you can create custom adapters for any destination.",[618,619],"drain-fan-out",{},[621,622,624],"h2",{"id":623},"send-events-without-naming-a-destination-in-your-code","Send events without naming a destination in your code",[614,626,627,628,632,633,637],{},"Adapters receive a ",[629,630,631],"code",{},"DrainContext"," after each request completes and send the data to an external service. The drain runs in ",[634,635,636],"strong",{},"fire-and-forget"," mode, meaning it never blocks the HTTP response.",[614,639,640],{},"How you wire an adapter depends on your framework:",[642,643,644,771,871,997,1086,1182,1287,1347,1401,1460,1514,1568,1654,1728],"framework-tabs",{},[645,646,652],"pre",{"className":647,"code":648,"filename":245,"language":649,"meta":650,"style":651},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createAxiomDrain } from 'evlog\u002Faxiom'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createAxiomDrain())\n})\n","typescript","server\u002Fplugins\u002Fevlog-drain.ts","",[629,653,654,687,694,726,762],{"__ignoreMap":651},[655,656,659,663,667,671,674,677,680,684],"span",{"class":657,"line":658},"line",1,[655,660,662],{"class":661},"s7zQu","import",[655,664,666],{"class":665},"sMK4o"," {",[655,668,670],{"class":669},"sTEyZ"," createAxiomDrain",[655,672,673],{"class":665}," }",[655,675,676],{"class":661}," from",[655,678,679],{"class":665}," '",[655,681,683],{"class":682},"sfazB","evlog\u002Faxiom",[655,685,686],{"class":665},"'\n",[655,688,690],{"class":657,"line":689},2,[655,691,693],{"emptyLinePlaceholder":692},true,"\n",[655,695,697,700,703,707,710,712,716,719,723],{"class":657,"line":696},3,[655,698,699],{"class":661},"export",[655,701,702],{"class":661}," default",[655,704,706],{"class":705},"s2Zo4"," defineNitroPlugin",[655,708,709],{"class":669},"(",[655,711,709],{"class":665},[655,713,715],{"class":714},"sHdIc","nitroApp",[655,717,718],{"class":665},")",[655,720,722],{"class":721},"spNyl"," =>",[655,724,725],{"class":665}," {\n",[655,727,729,732,735,738,740,743,746,749,752,754,757,759],{"class":657,"line":728},4,[655,730,731],{"class":669},"  nitroApp",[655,733,734],{"class":665},".",[655,736,737],{"class":669},"hooks",[655,739,734],{"class":665},[655,741,742],{"class":705},"hook",[655,744,709],{"class":745},"swJcz",[655,747,748],{"class":665},"'",[655,750,751],{"class":682},"evlog:drain",[655,753,748],{"class":665},[655,755,756],{"class":665},",",[655,758,670],{"class":705},[655,760,761],{"class":745},"())\n",[655,763,765,768],{"class":657,"line":764},5,[655,766,767],{"class":665},"}",[655,769,770],{"class":669},")\n",[645,772,774],{"className":647,"code":773,"filename":260,"language":649,"meta":650,"style":651},"import { definePlugin } from 'nitro'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nexport default definePlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createAxiomDrain())\n})\n",[629,775,776,796,814,818,838,864],{"__ignoreMap":651},[655,777,778,780,782,785,787,789,791,794],{"class":657,"line":658},[655,779,662],{"class":661},[655,781,666],{"class":665},[655,783,784],{"class":669}," definePlugin",[655,786,673],{"class":665},[655,788,676],{"class":661},[655,790,679],{"class":665},[655,792,793],{"class":682},"nitro",[655,795,686],{"class":665},[655,797,798,800,802,804,806,808,810,812],{"class":657,"line":689},[655,799,662],{"class":661},[655,801,666],{"class":665},[655,803,670],{"class":669},[655,805,673],{"class":665},[655,807,676],{"class":661},[655,809,679],{"class":665},[655,811,683],{"class":682},[655,813,686],{"class":665},[655,815,816],{"class":657,"line":696},[655,817,693],{"emptyLinePlaceholder":692},[655,819,820,822,824,826,828,830,832,834,836],{"class":657,"line":728},[655,821,699],{"class":661},[655,823,702],{"class":661},[655,825,784],{"class":705},[655,827,709],{"class":669},[655,829,709],{"class":665},[655,831,715],{"class":714},[655,833,718],{"class":665},[655,835,722],{"class":721},[655,837,725],{"class":665},[655,839,840,842,844,846,848,850,852,854,856,858,860,862],{"class":657,"line":764},[655,841,731],{"class":669},[655,843,734],{"class":665},[655,845,737],{"class":669},[655,847,734],{"class":665},[655,849,742],{"class":705},[655,851,709],{"class":745},[655,853,748],{"class":665},[655,855,751],{"class":682},[655,857,748],{"class":665},[655,859,756],{"class":665},[655,861,670],{"class":705},[655,863,761],{"class":745},[655,865,867,869],{"class":657,"line":866},6,[655,868,767],{"class":665},[655,870,770],{"class":669},[645,872,875],{"className":647,"code":873,"filename":250,"language":649,"meta":874,"style":651},"import { createEvlog } from 'evlog\u002Fnext'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  drain: createAxiomDrain(),\n})\n","lib\u002Fevlog.ts",[629,876,877,897,915,919,958,976,990],{"__ignoreMap":651},[655,878,879,881,883,886,888,890,892,895],{"class":657,"line":658},[655,880,662],{"class":661},[655,882,666],{"class":665},[655,884,885],{"class":669}," createEvlog",[655,887,673],{"class":665},[655,889,676],{"class":661},[655,891,679],{"class":665},[655,893,894],{"class":682},"evlog\u002Fnext",[655,896,686],{"class":665},[655,898,899,901,903,905,907,909,911,913],{"class":657,"line":689},[655,900,662],{"class":661},[655,902,666],{"class":665},[655,904,670],{"class":669},[655,906,673],{"class":665},[655,908,676],{"class":661},[655,910,679],{"class":665},[655,912,683],{"class":682},[655,914,686],{"class":665},[655,916,917],{"class":657,"line":696},[655,918,693],{"emptyLinePlaceholder":692},[655,920,921,923,926,928,931,933,936,938,941,943,946,948,951,953,955],{"class":657,"line":728},[655,922,699],{"class":661},[655,924,925],{"class":721}," const",[655,927,666],{"class":665},[655,929,930],{"class":669}," withEvlog",[655,932,756],{"class":665},[655,934,935],{"class":669}," useLogger",[655,937,756],{"class":665},[655,939,940],{"class":669}," log",[655,942,756],{"class":665},[655,944,945],{"class":669}," createError ",[655,947,767],{"class":665},[655,949,950],{"class":665}," =",[655,952,885],{"class":705},[655,954,709],{"class":669},[655,956,957],{"class":665},"{\n",[655,959,960,963,966,968,971,973],{"class":657,"line":764},[655,961,962],{"class":745},"  service",[655,964,965],{"class":665},":",[655,967,679],{"class":665},[655,969,970],{"class":682},"my-app",[655,972,748],{"class":665},[655,974,975],{"class":665},",\n",[655,977,978,981,983,985,988],{"class":657,"line":866},[655,979,980],{"class":745},"  drain",[655,982,965],{"class":665},[655,984,670],{"class":705},[655,986,987],{"class":669},"()",[655,989,975],{"class":665},[655,991,993,995],{"class":657,"line":992},7,[655,994,767],{"class":665},[655,996,770],{"class":669},[645,998,1001],{"className":647,"code":999,"filename":255,"language":649,"meta":1000,"style":651},"import { createEvlogHooks } from 'evlog\u002Fsveltekit'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nexport const { handle, handleError } = createEvlogHooks({ drain: createAxiomDrain() })\n","src\u002Fhooks.server.ts",[629,1002,1003,1023,1041,1045],{"__ignoreMap":651},[655,1004,1005,1007,1009,1012,1014,1016,1018,1021],{"class":657,"line":658},[655,1006,662],{"class":661},[655,1008,666],{"class":665},[655,1010,1011],{"class":669}," createEvlogHooks",[655,1013,673],{"class":665},[655,1015,676],{"class":661},[655,1017,679],{"class":665},[655,1019,1020],{"class":682},"evlog\u002Fsveltekit",[655,1022,686],{"class":665},[655,1024,1025,1027,1029,1031,1033,1035,1037,1039],{"class":657,"line":689},[655,1026,662],{"class":661},[655,1028,666],{"class":665},[655,1030,670],{"class":669},[655,1032,673],{"class":665},[655,1034,676],{"class":661},[655,1036,679],{"class":665},[655,1038,683],{"class":682},[655,1040,686],{"class":665},[655,1042,1043],{"class":657,"line":696},[655,1044,693],{"emptyLinePlaceholder":692},[655,1046,1047,1049,1051,1053,1056,1058,1061,1063,1065,1067,1069,1072,1075,1077,1079,1082,1084],{"class":657,"line":728},[655,1048,699],{"class":661},[655,1050,925],{"class":721},[655,1052,666],{"class":665},[655,1054,1055],{"class":669}," handle",[655,1057,756],{"class":665},[655,1059,1060],{"class":669}," handleError ",[655,1062,767],{"class":665},[655,1064,950],{"class":665},[655,1066,1011],{"class":705},[655,1068,709],{"class":669},[655,1070,1071],{"class":665},"{",[655,1073,1074],{"class":745}," drain",[655,1076,965],{"class":665},[655,1078,670],{"class":705},[655,1080,1081],{"class":669},"() ",[655,1083,767],{"class":665},[655,1085,770],{"class":669},[645,1087,1088],{"className":647,"code":773,"filename":265,"language":649,"meta":650,"style":651},[629,1089,1090,1108,1126,1130,1150,1176],{"__ignoreMap":651},[655,1091,1092,1094,1096,1098,1100,1102,1104,1106],{"class":657,"line":658},[655,1093,662],{"class":661},[655,1095,666],{"class":665},[655,1097,784],{"class":669},[655,1099,673],{"class":665},[655,1101,676],{"class":661},[655,1103,679],{"class":665},[655,1105,793],{"class":682},[655,1107,686],{"class":665},[655,1109,1110,1112,1114,1116,1118,1120,1122,1124],{"class":657,"line":689},[655,1111,662],{"class":661},[655,1113,666],{"class":665},[655,1115,670],{"class":669},[655,1117,673],{"class":665},[655,1119,676],{"class":661},[655,1121,679],{"class":665},[655,1123,683],{"class":682},[655,1125,686],{"class":665},[655,1127,1128],{"class":657,"line":696},[655,1129,693],{"emptyLinePlaceholder":692},[655,1131,1132,1134,1136,1138,1140,1142,1144,1146,1148],{"class":657,"line":728},[655,1133,699],{"class":661},[655,1135,702],{"class":661},[655,1137,784],{"class":705},[655,1139,709],{"class":669},[655,1141,709],{"class":665},[655,1143,715],{"class":714},[655,1145,718],{"class":665},[655,1147,722],{"class":721},[655,1149,725],{"class":665},[655,1151,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174],{"class":657,"line":764},[655,1153,731],{"class":669},[655,1155,734],{"class":665},[655,1157,737],{"class":669},[655,1159,734],{"class":665},[655,1161,742],{"class":705},[655,1163,709],{"class":745},[655,1165,748],{"class":665},[655,1167,751],{"class":682},[655,1169,748],{"class":665},[655,1171,756],{"class":665},[655,1173,670],{"class":705},[655,1175,761],{"class":745},[655,1177,1178,1180],{"class":657,"line":866},[655,1179,767],{"class":665},[655,1181,770],{"class":669},[645,1183,1186],{"className":647,"code":1184,"filename":295,"language":649,"meta":1185,"style":651},"import { evlog } from 'evlog\u002Freact-router'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nexport const middleware: Route.MiddlewareFunction[] = [\n  evlog({ drain: createAxiomDrain() }),\n]\n","app\u002Froot.tsx",[629,1187,1188,1208,1226,1230,1259,1282],{"__ignoreMap":651},[655,1189,1190,1192,1194,1197,1199,1201,1203,1206],{"class":657,"line":658},[655,1191,662],{"class":661},[655,1193,666],{"class":665},[655,1195,1196],{"class":669}," evlog",[655,1198,673],{"class":665},[655,1200,676],{"class":661},[655,1202,679],{"class":665},[655,1204,1205],{"class":682},"evlog\u002Freact-router",[655,1207,686],{"class":665},[655,1209,1210,1212,1214,1216,1218,1220,1222,1224],{"class":657,"line":689},[655,1211,662],{"class":661},[655,1213,666],{"class":665},[655,1215,670],{"class":669},[655,1217,673],{"class":665},[655,1219,676],{"class":661},[655,1221,679],{"class":665},[655,1223,683],{"class":682},[655,1225,686],{"class":665},[655,1227,1228],{"class":657,"line":696},[655,1229,693],{"emptyLinePlaceholder":692},[655,1231,1232,1234,1236,1239,1241,1245,1247,1250,1253,1256],{"class":657,"line":728},[655,1233,699],{"class":661},[655,1235,925],{"class":721},[655,1237,1238],{"class":669}," middleware",[655,1240,965],{"class":665},[655,1242,1244],{"class":1243},"sBMFI"," Route",[655,1246,734],{"class":665},[655,1248,1249],{"class":1243},"MiddlewareFunction",[655,1251,1252],{"class":669},"[] ",[655,1254,1255],{"class":665},"=",[655,1257,1258],{"class":669}," [\n",[655,1260,1261,1264,1266,1268,1270,1272,1274,1276,1278,1280],{"class":657,"line":764},[655,1262,1263],{"class":705},"  evlog",[655,1265,709],{"class":669},[655,1267,1071],{"class":665},[655,1269,1074],{"class":745},[655,1271,965],{"class":665},[655,1273,670],{"class":705},[655,1275,1081],{"class":669},[655,1277,767],{"class":665},[655,1279,718],{"class":669},[655,1281,975],{"class":665},[655,1283,1284],{"class":657,"line":866},[655,1285,1286],{"class":669},"]\n",[645,1288,1291],{"className":647,"code":1289,"filename":280,"language":649,"meta":1290,"style":651},"import { createAxiomDrain } from 'evlog\u002Faxiom'\n\napp.use(evlog({ drain: createAxiomDrain() }))\n","src\u002Findex.ts",[629,1292,1293,1311,1315],{"__ignoreMap":651},[655,1294,1295,1297,1299,1301,1303,1305,1307,1309],{"class":657,"line":658},[655,1296,662],{"class":661},[655,1298,666],{"class":665},[655,1300,670],{"class":669},[655,1302,673],{"class":665},[655,1304,676],{"class":661},[655,1306,679],{"class":665},[655,1308,683],{"class":682},[655,1310,686],{"class":665},[655,1312,1313],{"class":657,"line":689},[655,1314,693],{"emptyLinePlaceholder":692},[655,1316,1317,1320,1322,1325,1327,1330,1332,1334,1336,1338,1340,1342,1344],{"class":657,"line":696},[655,1318,1319],{"class":669},"app",[655,1321,734],{"class":665},[655,1323,1324],{"class":705},"use",[655,1326,709],{"class":669},[655,1328,1329],{"class":705},"evlog",[655,1331,709],{"class":669},[655,1333,1071],{"class":665},[655,1335,1074],{"class":745},[655,1337,965],{"class":665},[655,1339,670],{"class":705},[655,1341,1081],{"class":669},[655,1343,767],{"class":665},[655,1345,1346],{"class":669},"))\n",[645,1348,1349],{"className":647,"code":1289,"filename":275,"language":649,"meta":1290,"style":651},[629,1350,1351,1369,1373],{"__ignoreMap":651},[655,1352,1353,1355,1357,1359,1361,1363,1365,1367],{"class":657,"line":658},[655,1354,662],{"class":661},[655,1356,666],{"class":665},[655,1358,670],{"class":669},[655,1360,673],{"class":665},[655,1362,676],{"class":661},[655,1364,679],{"class":665},[655,1366,683],{"class":682},[655,1368,686],{"class":665},[655,1370,1371],{"class":657,"line":689},[655,1372,693],{"emptyLinePlaceholder":692},[655,1374,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395,1397,1399],{"class":657,"line":696},[655,1376,1319],{"class":669},[655,1378,734],{"class":665},[655,1380,1324],{"class":705},[655,1382,709],{"class":669},[655,1384,1329],{"class":705},[655,1386,709],{"class":669},[655,1388,1071],{"class":665},[655,1390,1074],{"class":745},[655,1392,965],{"class":665},[655,1394,670],{"class":705},[655,1396,1081],{"class":669},[655,1398,767],{"class":665},[655,1400,1346],{"class":669},[645,1402,1404],{"className":647,"code":1403,"filename":285,"language":649,"meta":1290,"style":651},"import { createAxiomDrain } from 'evlog\u002Faxiom'\n\nawait app.register(evlog, { drain: createAxiomDrain() })\n",[629,1405,1406,1424,1428],{"__ignoreMap":651},[655,1407,1408,1410,1412,1414,1416,1418,1420,1422],{"class":657,"line":658},[655,1409,662],{"class":661},[655,1411,666],{"class":665},[655,1413,670],{"class":669},[655,1415,673],{"class":665},[655,1417,676],{"class":661},[655,1419,679],{"class":665},[655,1421,683],{"class":682},[655,1423,686],{"class":665},[655,1425,1426],{"class":657,"line":689},[655,1427,693],{"emptyLinePlaceholder":692},[655,1429,1430,1433,1436,1438,1441,1444,1446,1448,1450,1452,1454,1456,1458],{"class":657,"line":696},[655,1431,1432],{"class":661},"await",[655,1434,1435],{"class":669}," app",[655,1437,734],{"class":665},[655,1439,1440],{"class":705},"register",[655,1442,1443],{"class":669},"(evlog",[655,1445,756],{"class":665},[655,1447,666],{"class":665},[655,1449,1074],{"class":745},[655,1451,965],{"class":665},[655,1453,670],{"class":705},[655,1455,1081],{"class":669},[655,1457,767],{"class":665},[655,1459,770],{"class":669},[645,1461,1462],{"className":647,"code":1289,"filename":290,"language":649,"meta":1290,"style":651},[629,1463,1464,1482,1486],{"__ignoreMap":651},[655,1465,1466,1468,1470,1472,1474,1476,1478,1480],{"class":657,"line":658},[655,1467,662],{"class":661},[655,1469,666],{"class":665},[655,1471,670],{"class":669},[655,1473,673],{"class":665},[655,1475,676],{"class":661},[655,1477,679],{"class":665},[655,1479,683],{"class":682},[655,1481,686],{"class":665},[655,1483,1484],{"class":657,"line":689},[655,1485,693],{"emptyLinePlaceholder":692},[655,1487,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512],{"class":657,"line":696},[655,1489,1319],{"class":669},[655,1491,734],{"class":665},[655,1493,1324],{"class":705},[655,1495,709],{"class":669},[655,1497,1329],{"class":705},[655,1499,709],{"class":669},[655,1501,1071],{"class":665},[655,1503,1074],{"class":745},[655,1505,965],{"class":665},[655,1507,670],{"class":705},[655,1509,1081],{"class":669},[655,1511,767],{"class":665},[655,1513,1346],{"class":669},[645,1515,1518],{"className":647,"code":1516,"filename":270,"language":649,"meta":1517,"style":651},"import { createAxiomDrain } from 'evlog\u002Faxiom'\n\nEvlogModule.forRoot({ drain: createAxiomDrain() })\n","src\u002Fapp.module.ts",[629,1519,1520,1538,1542],{"__ignoreMap":651},[655,1521,1522,1524,1526,1528,1530,1532,1534,1536],{"class":657,"line":658},[655,1523,662],{"class":661},[655,1525,666],{"class":665},[655,1527,670],{"class":669},[655,1529,673],{"class":665},[655,1531,676],{"class":661},[655,1533,679],{"class":665},[655,1535,683],{"class":682},[655,1537,686],{"class":665},[655,1539,1540],{"class":657,"line":689},[655,1541,693],{"emptyLinePlaceholder":692},[655,1543,1544,1547,1549,1552,1554,1556,1558,1560,1562,1564,1566],{"class":657,"line":696},[655,1545,1546],{"class":669},"EvlogModule",[655,1548,734],{"class":665},[655,1550,1551],{"class":705},"forRoot",[655,1553,709],{"class":669},[655,1555,1071],{"class":665},[655,1557,1074],{"class":745},[655,1559,965],{"class":665},[655,1561,670],{"class":705},[655,1563,1081],{"class":669},[655,1565,767],{"class":665},[655,1567,770],{"class":669},[645,1569,1572],{"className":647,"code":1570,"filename":314,"language":649,"meta":1571,"style":651},"import { withEvlog } from 'evlog\u002Forpc'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nconst handler = withEvlog(new RPCHandler(router), { drain: createAxiomDrain() })\n","server\u002Forpc.ts",[629,1573,1574,1593,1611,1615],{"__ignoreMap":651},[655,1575,1576,1578,1580,1582,1584,1586,1588,1591],{"class":657,"line":658},[655,1577,662],{"class":661},[655,1579,666],{"class":665},[655,1581,930],{"class":669},[655,1583,673],{"class":665},[655,1585,676],{"class":661},[655,1587,679],{"class":665},[655,1589,1590],{"class":682},"evlog\u002Forpc",[655,1592,686],{"class":665},[655,1594,1595,1597,1599,1601,1603,1605,1607,1609],{"class":657,"line":689},[655,1596,662],{"class":661},[655,1598,666],{"class":665},[655,1600,670],{"class":669},[655,1602,673],{"class":665},[655,1604,676],{"class":661},[655,1606,679],{"class":665},[655,1608,683],{"class":682},[655,1610,686],{"class":665},[655,1612,1613],{"class":657,"line":696},[655,1614,693],{"emptyLinePlaceholder":692},[655,1616,1617,1620,1623,1625,1627,1629,1632,1635,1638,1640,1642,1644,1646,1648,1650,1652],{"class":657,"line":728},[655,1618,1619],{"class":721},"const",[655,1621,1622],{"class":669}," handler ",[655,1624,1255],{"class":665},[655,1626,930],{"class":705},[655,1628,709],{"class":669},[655,1630,1631],{"class":665},"new",[655,1633,1634],{"class":705}," RPCHandler",[655,1636,1637],{"class":669},"(router)",[655,1639,756],{"class":665},[655,1641,666],{"class":665},[655,1643,1074],{"class":745},[655,1645,965],{"class":665},[655,1647,670],{"class":705},[655,1649,1081],{"class":669},[655,1651,767],{"class":665},[655,1653,770],{"class":669},[645,1655,1658],{"className":647,"code":1656,"filename":300,"language":649,"meta":1657,"style":651},"import { withEvlog } from 'evlog\u002Fworkers'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\nexport default withEvlog(handler, { drain: createAxiomDrain() })\n","src\u002Fworker.ts",[629,1659,1660,1679,1697,1701],{"__ignoreMap":651},[655,1661,1662,1664,1666,1668,1670,1672,1674,1677],{"class":657,"line":658},[655,1663,662],{"class":661},[655,1665,666],{"class":665},[655,1667,930],{"class":669},[655,1669,673],{"class":665},[655,1671,676],{"class":661},[655,1673,679],{"class":665},[655,1675,1676],{"class":682},"evlog\u002Fworkers",[655,1678,686],{"class":665},[655,1680,1681,1683,1685,1687,1689,1691,1693,1695],{"class":657,"line":689},[655,1682,662],{"class":661},[655,1684,666],{"class":665},[655,1686,670],{"class":669},[655,1688,673],{"class":665},[655,1690,676],{"class":661},[655,1692,679],{"class":665},[655,1694,683],{"class":682},[655,1696,686],{"class":665},[655,1698,1699],{"class":657,"line":696},[655,1700,693],{"emptyLinePlaceholder":692},[655,1702,1703,1705,1707,1709,1712,1714,1716,1718,1720,1722,1724,1726],{"class":657,"line":728},[655,1704,699],{"class":661},[655,1706,702],{"class":661},[655,1708,930],{"class":705},[655,1710,1711],{"class":669},"(handler",[655,1713,756],{"class":665},[655,1715,666],{"class":665},[655,1717,1074],{"class":745},[655,1719,965],{"class":665},[655,1721,670],{"class":705},[655,1723,1081],{"class":669},[655,1725,767],{"class":665},[655,1727,770],{"class":669},[645,1729,1731],{"className":647,"code":1730,"filename":305,"language":649,"meta":651,"style":651},"import { createAxiomDrain } from 'evlog\u002Faxiom'\n\ninitLogger({ drain: createAxiomDrain() })\n",[629,1732,1733,1751,1755],{"__ignoreMap":651},[655,1734,1735,1737,1739,1741,1743,1745,1747,1749],{"class":657,"line":658},[655,1736,662],{"class":661},[655,1738,666],{"class":665},[655,1740,670],{"class":669},[655,1742,673],{"class":665},[655,1744,676],{"class":661},[655,1746,679],{"class":665},[655,1748,683],{"class":682},[655,1750,686],{"class":665},[655,1752,1753],{"class":657,"line":689},[655,1754,693],{"emptyLinePlaceholder":692},[655,1756,1757,1760,1762,1764,1766,1768,1770,1772,1774],{"class":657,"line":696},[655,1758,1759],{"class":705},"initLogger",[655,1761,709],{"class":669},[655,1763,1071],{"class":665},[655,1765,1074],{"class":745},[655,1767,965],{"class":665},[655,1769,670],{"class":705},[655,1771,1081],{"class":669},[655,1773,767],{"class":665},[655,1775,770],{"class":669},[1777,1778,1781,1784,1785,1788],"callout",{"color":1779,"icon":1780},"info","i-lucide-cloud",[634,1782,1783],{},"Serverless Support:"," On Cloudflare Workers and Vercel Edge, evlog automatically uses ",[629,1786,1787],{},"waitUntil()"," to ensure drains complete before the runtime terminates. No additional configuration needed.",[621,1790,1792],{"id":1791},"pick-a-destination","Pick a destination",[1794,1795,1796,1800,1803,1806,1809,1812,1815,1818,1821,1824,1827,1830,1833,1837,1842],"card-group",{},[1797,1798,1799],"card",{"icon":169,"title":166,"to":167},"Send logs to Axiom, which indexes every field so you can query on any of them.",[1797,1801,1802],{"icon":174,"title":171,"to":172},"Send logs to PostHog Logs for structured logging and observability.",[1797,1804,1805],{"icon":179,"title":176,"to":177},"Send structured logs to Sentry Logs for high-cardinality querying.",[1797,1807,1808],{"icon":184,"title":181,"to":182},"Send logs to Better Stack for log management and alerting.",[1797,1810,1811],{"icon":189,"title":186,"to":187},"Send logs to Datadog Logs via the native HTTP intake API.",[1797,1813,1814],{"icon":199,"title":196,"to":197},"Push logs to self-hosted, multi-tenant, or Grafana Cloud Loki.",[1797,1816,1817],{"icon":204,"title":201,"to":202},"Insert logs into ClickHouse for fast aggregation over huge volumes.",[1797,1819,1820],{"icon":209,"title":206,"to":207},"OpenTelemetry Protocol for Grafana, Datadog, Honeycomb, and more.",[1797,1822,1823],{"icon":214,"title":211,"to":212},"Send logs to HyperDX via OTLP\u002FHTTP using their documented ingest endpoint and API key.",[1797,1825,1826],{"icon":224,"title":221,"to":222},"Write logs to local NDJSON files for debugging and AI agent integration.",[1797,1828,1829],{"icon":229,"title":226,"to":227},"Self-hosted log storage in your NuxtHub database with automatic retention.",[1797,1831,1832],{"icon":234,"title":231,"to":232},"In-memory ring buffer that works in any runtime, including Cloudflare Workers.",[1797,1834,1836],{"icon":349,"title":1835,"to":535},"Custom","Build your own adapter for any destination.",[1797,1838,1841],{"icon":1839,"title":1840,"to":540},"i-lucide-globe","HTTP","Send client logs to your server over HTTP without framework coupling.",[1797,1843,1845],{"icon":542,"title":1844,"to":540},"Pipeline","Batch events, retry on failure, and handle buffer overflow.",[621,1847,1849],{"id":1848},"call-a-drain-outside-a-request","Call a drain outside a request",[614,1851,1852,1853,1856,1857,1859],{},"In plain TypeScript or Bun scripts (no HTTP framework), use the ",[629,1854,1855],{},"drain"," option in ",[629,1858,1759],{},". Every emitted event is drained automatically.",[645,1861,1864],{"className":647,"code":1862,"filename":1863,"language":649,"meta":651,"style":651},"import type { DrainContext } from 'evlog'\nimport { initLogger, log, createRequestLogger } from 'evlog'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createDrainPipeline } from 'evlog\u002Fpipeline'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>()\nconst drain = pipeline(createAxiomDrain())\n\ninitLogger({\n  env: { service: 'my-script' },\n  drain,\n})\n\nlog.info({ action: 'job_started' }) \u002F\u002F drained automatically\n\nconst reqLog = createRequestLogger({ method: 'POST', path: '\u002Fprocess' })\nreqLog.set({ processed: 42 })\nreqLog.emit() \u002F\u002F drained automatically\n\nawait drain.flush()\n","index.ts",[629,1865,1866,1888,1916,1934,1954,1958,1980,1999,2004,2013,2038,2045,2052,2057,2092,2097,2143,2171,2185,2190],{"__ignoreMap":651},[655,1867,1868,1870,1873,1875,1878,1880,1882,1884,1886],{"class":657,"line":658},[655,1869,662],{"class":661},[655,1871,1872],{"class":661}," type",[655,1874,666],{"class":665},[655,1876,1877],{"class":669}," DrainContext",[655,1879,673],{"class":665},[655,1881,676],{"class":661},[655,1883,679],{"class":665},[655,1885,1329],{"class":682},[655,1887,686],{"class":665},[655,1889,1890,1892,1894,1897,1899,1901,1903,1906,1908,1910,1912,1914],{"class":657,"line":689},[655,1891,662],{"class":661},[655,1893,666],{"class":665},[655,1895,1896],{"class":669}," initLogger",[655,1898,756],{"class":665},[655,1900,940],{"class":669},[655,1902,756],{"class":665},[655,1904,1905],{"class":669}," createRequestLogger",[655,1907,673],{"class":665},[655,1909,676],{"class":661},[655,1911,679],{"class":665},[655,1913,1329],{"class":682},[655,1915,686],{"class":665},[655,1917,1918,1920,1922,1924,1926,1928,1930,1932],{"class":657,"line":696},[655,1919,662],{"class":661},[655,1921,666],{"class":665},[655,1923,670],{"class":669},[655,1925,673],{"class":665},[655,1927,676],{"class":661},[655,1929,679],{"class":665},[655,1931,683],{"class":682},[655,1933,686],{"class":665},[655,1935,1936,1938,1940,1943,1945,1947,1949,1952],{"class":657,"line":728},[655,1937,662],{"class":661},[655,1939,666],{"class":665},[655,1941,1942],{"class":669}," createDrainPipeline",[655,1944,673],{"class":665},[655,1946,676],{"class":661},[655,1948,679],{"class":665},[655,1950,1951],{"class":682},"evlog\u002Fpipeline",[655,1953,686],{"class":665},[655,1955,1956],{"class":657,"line":764},[655,1957,693],{"emptyLinePlaceholder":692},[655,1959,1960,1962,1965,1967,1969,1972,1974,1977],{"class":657,"line":866},[655,1961,1619],{"class":721},[655,1963,1964],{"class":669}," pipeline ",[655,1966,1255],{"class":665},[655,1968,1942],{"class":705},[655,1970,1971],{"class":665},"\u003C",[655,1973,631],{"class":1243},[655,1975,1976],{"class":665},">",[655,1978,1979],{"class":669},"()\n",[655,1981,1982,1984,1987,1989,1992,1994,1997],{"class":657,"line":992},[655,1983,1619],{"class":721},[655,1985,1986],{"class":669}," drain ",[655,1988,1255],{"class":665},[655,1990,1991],{"class":705}," pipeline",[655,1993,709],{"class":669},[655,1995,1996],{"class":705},"createAxiomDrain",[655,1998,761],{"class":669},[655,2000,2002],{"class":657,"line":2001},8,[655,2003,693],{"emptyLinePlaceholder":692},[655,2005,2007,2009,2011],{"class":657,"line":2006},9,[655,2008,1759],{"class":705},[655,2010,709],{"class":669},[655,2012,957],{"class":665},[655,2014,2016,2019,2021,2023,2026,2028,2030,2033,2035],{"class":657,"line":2015},10,[655,2017,2018],{"class":745},"  env",[655,2020,965],{"class":665},[655,2022,666],{"class":665},[655,2024,2025],{"class":745}," service",[655,2027,965],{"class":665},[655,2029,679],{"class":665},[655,2031,2032],{"class":682},"my-script",[655,2034,748],{"class":665},[655,2036,2037],{"class":665}," },\n",[655,2039,2041,2043],{"class":657,"line":2040},11,[655,2042,980],{"class":669},[655,2044,975],{"class":665},[655,2046,2048,2050],{"class":657,"line":2047},12,[655,2049,767],{"class":665},[655,2051,770],{"class":669},[655,2053,2055],{"class":657,"line":2054},13,[655,2056,693],{"emptyLinePlaceholder":692},[655,2058,2060,2063,2065,2067,2069,2071,2074,2076,2078,2081,2083,2085,2088],{"class":657,"line":2059},14,[655,2061,2062],{"class":669},"log",[655,2064,734],{"class":665},[655,2066,1779],{"class":705},[655,2068,709],{"class":669},[655,2070,1071],{"class":665},[655,2072,2073],{"class":745}," action",[655,2075,965],{"class":665},[655,2077,679],{"class":665},[655,2079,2080],{"class":682},"job_started",[655,2082,748],{"class":665},[655,2084,673],{"class":665},[655,2086,2087],{"class":669},") ",[655,2089,2091],{"class":2090},"sHwdD","\u002F\u002F drained automatically\n",[655,2093,2095],{"class":657,"line":2094},15,[655,2096,693],{"emptyLinePlaceholder":692},[655,2098,2100,2102,2105,2107,2109,2111,2113,2116,2118,2120,2123,2125,2127,2130,2132,2134,2137,2139,2141],{"class":657,"line":2099},16,[655,2101,1619],{"class":721},[655,2103,2104],{"class":669}," reqLog ",[655,2106,1255],{"class":665},[655,2108,1905],{"class":705},[655,2110,709],{"class":669},[655,2112,1071],{"class":665},[655,2114,2115],{"class":745}," method",[655,2117,965],{"class":665},[655,2119,679],{"class":665},[655,2121,2122],{"class":682},"POST",[655,2124,748],{"class":665},[655,2126,756],{"class":665},[655,2128,2129],{"class":745}," path",[655,2131,965],{"class":665},[655,2133,679],{"class":665},[655,2135,2136],{"class":682},"\u002Fprocess",[655,2138,748],{"class":665},[655,2140,673],{"class":665},[655,2142,770],{"class":669},[655,2144,2146,2149,2151,2154,2156,2158,2161,2163,2167,2169],{"class":657,"line":2145},17,[655,2147,2148],{"class":669},"reqLog",[655,2150,734],{"class":665},[655,2152,2153],{"class":705},"set",[655,2155,709],{"class":669},[655,2157,1071],{"class":665},[655,2159,2160],{"class":745}," processed",[655,2162,965],{"class":665},[655,2164,2166],{"class":2165},"sbssI"," 42",[655,2168,673],{"class":665},[655,2170,770],{"class":669},[655,2172,2174,2176,2178,2181,2183],{"class":657,"line":2173},18,[655,2175,2148],{"class":669},[655,2177,734],{"class":665},[655,2179,2180],{"class":705},"emit",[655,2182,1081],{"class":669},[655,2184,2091],{"class":2090},[655,2186,2188],{"class":657,"line":2187},19,[655,2189,693],{"emptyLinePlaceholder":692},[655,2191,2193,2195,2197,2199,2202],{"class":657,"line":2192},20,[655,2194,1432],{"class":661},[655,2196,1074],{"class":669},[655,2198,734],{"class":665},[655,2200,2201],{"class":705},"flush",[655,2203,1979],{"class":669},[1777,2205,2208,2209,2216],{"color":2206,"icon":2207},"neutral","i-lucide-arrow-right","See the full ",[2210,2211,2215],"a",{"href":2212,"rel":2213},"https:\u002F\u002Fgithub.com\u002Fevloghq\u002Fevlog\u002Ftree\u002Fmain\u002Fexamples\u002Fbun-script",[2214],"nofollow","bun-script example"," for a realistic batch processing script.",[621,2218,2220],{"id":2219},"send-to-several-places-at-once","Send to several places at once",[614,2222,2223],{},"Send logs to multiple services simultaneously by composing drains:",[645,2225,2227],{"className":647,"code":2226,"filename":1290,"language":649,"meta":651,"style":651},"import { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createOTLPDrain } from 'evlog\u002Fotlp'\n\nconst axiom = createAxiomDrain()\nconst otlp = createOTLPDrain()\n\nconst drain = async (ctx) => {\n  await Promise.allSettled([axiom(ctx), otlp(ctx)])\n}\n",[629,2228,2229,2247,2267,2271,2284,2297,2301,2324,2361],{"__ignoreMap":651},[655,2230,2231,2233,2235,2237,2239,2241,2243,2245],{"class":657,"line":658},[655,2232,662],{"class":661},[655,2234,666],{"class":665},[655,2236,670],{"class":669},[655,2238,673],{"class":665},[655,2240,676],{"class":661},[655,2242,679],{"class":665},[655,2244,683],{"class":682},[655,2246,686],{"class":665},[655,2248,2249,2251,2253,2256,2258,2260,2262,2265],{"class":657,"line":689},[655,2250,662],{"class":661},[655,2252,666],{"class":665},[655,2254,2255],{"class":669}," createOTLPDrain",[655,2257,673],{"class":665},[655,2259,676],{"class":661},[655,2261,679],{"class":665},[655,2263,2264],{"class":682},"evlog\u002Fotlp",[655,2266,686],{"class":665},[655,2268,2269],{"class":657,"line":696},[655,2270,693],{"emptyLinePlaceholder":692},[655,2272,2273,2275,2278,2280,2282],{"class":657,"line":728},[655,2274,1619],{"class":721},[655,2276,2277],{"class":669}," axiom ",[655,2279,1255],{"class":665},[655,2281,670],{"class":705},[655,2283,1979],{"class":669},[655,2285,2286,2288,2291,2293,2295],{"class":657,"line":764},[655,2287,1619],{"class":721},[655,2289,2290],{"class":669}," otlp ",[655,2292,1255],{"class":665},[655,2294,2255],{"class":705},[655,2296,1979],{"class":669},[655,2298,2299],{"class":657,"line":866},[655,2300,693],{"emptyLinePlaceholder":692},[655,2302,2303,2305,2307,2309,2312,2315,2318,2320,2322],{"class":657,"line":992},[655,2304,1619],{"class":721},[655,2306,1986],{"class":669},[655,2308,1255],{"class":665},[655,2310,2311],{"class":721}," async",[655,2313,2314],{"class":665}," (",[655,2316,2317],{"class":714},"ctx",[655,2319,718],{"class":665},[655,2321,722],{"class":721},[655,2323,725],{"class":665},[655,2325,2326,2329,2332,2334,2337,2340,2343,2345,2347,2349,2351,2354,2356,2358],{"class":657,"line":2001},[655,2327,2328],{"class":661},"  await",[655,2330,2331],{"class":1243}," Promise",[655,2333,734],{"class":665},[655,2335,2336],{"class":705},"allSettled",[655,2338,2339],{"class":745},"([",[655,2341,2342],{"class":705},"axiom",[655,2344,709],{"class":745},[655,2346,2317],{"class":669},[655,2348,718],{"class":745},[655,2350,756],{"class":665},[655,2352,2353],{"class":705}," otlp",[655,2355,709],{"class":745},[655,2357,2317],{"class":669},[655,2359,2360],{"class":745},")])\n",[655,2362,2363],{"class":657,"line":2006},[655,2364,2365],{"class":665},"}\n",[614,2367,2368,2369,2371],{},"Then pass ",[629,2370,1855],{}," to your framework:",[642,2373,2374,2431,2506,2591,2648,2727,2796,2823,2849,2876,2902,2925,2980,3027],{},[645,2375,2377],{"className":647,"code":2376,"filename":245,"language":649,"meta":650,"style":651},"export default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', drain)\n})\n",[629,2378,2379,2399,2425],{"__ignoreMap":651},[655,2380,2381,2383,2385,2387,2389,2391,2393,2395,2397],{"class":657,"line":658},[655,2382,699],{"class":661},[655,2384,702],{"class":661},[655,2386,706],{"class":705},[655,2388,709],{"class":669},[655,2390,709],{"class":665},[655,2392,715],{"class":714},[655,2394,718],{"class":665},[655,2396,722],{"class":721},[655,2398,725],{"class":665},[655,2400,2401,2403,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423],{"class":657,"line":689},[655,2402,731],{"class":669},[655,2404,734],{"class":665},[655,2406,737],{"class":669},[655,2408,734],{"class":665},[655,2410,742],{"class":705},[655,2412,709],{"class":745},[655,2414,748],{"class":665},[655,2416,751],{"class":682},[655,2418,748],{"class":665},[655,2420,756],{"class":665},[655,2422,1074],{"class":669},[655,2424,770],{"class":745},[655,2426,2427,2429],{"class":657,"line":696},[655,2428,767],{"class":665},[655,2430,770],{"class":669},[645,2432,2434],{"className":647,"code":2433,"filename":260,"language":649,"meta":650,"style":651},"import { definePlugin } from 'nitro'\nexport default definePlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', drain)\n})\n",[629,2435,2436,2454,2474,2500],{"__ignoreMap":651},[655,2437,2438,2440,2442,2444,2446,2448,2450,2452],{"class":657,"line":658},[655,2439,662],{"class":661},[655,2441,666],{"class":665},[655,2443,784],{"class":669},[655,2445,673],{"class":665},[655,2447,676],{"class":661},[655,2449,679],{"class":665},[655,2451,793],{"class":682},[655,2453,686],{"class":665},[655,2455,2456,2458,2460,2462,2464,2466,2468,2470,2472],{"class":657,"line":689},[655,2457,699],{"class":661},[655,2459,702],{"class":661},[655,2461,784],{"class":705},[655,2463,709],{"class":669},[655,2465,709],{"class":665},[655,2467,715],{"class":714},[655,2469,718],{"class":665},[655,2471,722],{"class":721},[655,2473,725],{"class":665},[655,2475,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498],{"class":657,"line":696},[655,2477,731],{"class":669},[655,2479,734],{"class":665},[655,2481,737],{"class":669},[655,2483,734],{"class":665},[655,2485,742],{"class":705},[655,2487,709],{"class":745},[655,2489,748],{"class":665},[655,2491,751],{"class":682},[655,2493,748],{"class":665},[655,2495,756],{"class":665},[655,2497,1074],{"class":669},[655,2499,770],{"class":745},[655,2501,2502,2504],{"class":657,"line":728},[655,2503,767],{"class":665},[655,2505,770],{"class":669},[645,2507,2509],{"className":647,"code":2508,"filename":250,"language":649,"meta":874,"style":651},"import { createEvlog } from 'evlog\u002Fnext'\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  drain,\n})\n",[629,2510,2511,2529,2533,2565,2579,2585],{"__ignoreMap":651},[655,2512,2513,2515,2517,2519,2521,2523,2525,2527],{"class":657,"line":658},[655,2514,662],{"class":661},[655,2516,666],{"class":665},[655,2518,885],{"class":669},[655,2520,673],{"class":665},[655,2522,676],{"class":661},[655,2524,679],{"class":665},[655,2526,894],{"class":682},[655,2528,686],{"class":665},[655,2530,2531],{"class":657,"line":689},[655,2532,693],{"emptyLinePlaceholder":692},[655,2534,2535,2537,2539,2541,2543,2545,2547,2549,2551,2553,2555,2557,2559,2561,2563],{"class":657,"line":696},[655,2536,699],{"class":661},[655,2538,925],{"class":721},[655,2540,666],{"class":665},[655,2542,930],{"class":669},[655,2544,756],{"class":665},[655,2546,935],{"class":669},[655,2548,756],{"class":665},[655,2550,940],{"class":669},[655,2552,756],{"class":665},[655,2554,945],{"class":669},[655,2556,767],{"class":665},[655,2558,950],{"class":665},[655,2560,885],{"class":705},[655,2562,709],{"class":669},[655,2564,957],{"class":665},[655,2566,2567,2569,2571,2573,2575,2577],{"class":657,"line":728},[655,2568,962],{"class":745},[655,2570,965],{"class":665},[655,2572,679],{"class":665},[655,2574,970],{"class":682},[655,2576,748],{"class":665},[655,2578,975],{"class":665},[655,2580,2581,2583],{"class":657,"line":764},[655,2582,980],{"class":669},[655,2584,975],{"class":665},[655,2586,2587,2589],{"class":657,"line":866},[655,2588,767],{"class":665},[655,2590,770],{"class":669},[645,2592,2594],{"className":647,"code":2593,"filename":255,"language":649,"meta":1000,"style":651},"import { createEvlogHooks } from 'evlog\u002Fsveltekit'\n\nexport const { handle, handleError } = createEvlogHooks({ drain })\n",[629,2595,2596,2614,2618],{"__ignoreMap":651},[655,2597,2598,2600,2602,2604,2606,2608,2610,2612],{"class":657,"line":658},[655,2599,662],{"class":661},[655,2601,666],{"class":665},[655,2603,1011],{"class":669},[655,2605,673],{"class":665},[655,2607,676],{"class":661},[655,2609,679],{"class":665},[655,2611,1020],{"class":682},[655,2613,686],{"class":665},[655,2615,2616],{"class":657,"line":689},[655,2617,693],{"emptyLinePlaceholder":692},[655,2619,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646],{"class":657,"line":696},[655,2621,699],{"class":661},[655,2623,925],{"class":721},[655,2625,666],{"class":665},[655,2627,1055],{"class":669},[655,2629,756],{"class":665},[655,2631,1060],{"class":669},[655,2633,767],{"class":665},[655,2635,950],{"class":665},[655,2637,1011],{"class":705},[655,2639,709],{"class":669},[655,2641,1071],{"class":665},[655,2643,1986],{"class":669},[655,2645,767],{"class":665},[655,2647,770],{"class":669},[645,2649,2651],{"className":647,"code":2650,"filename":265,"language":649,"meta":650,"style":651},"import { definePlugin } from 'nitro'\n\nexport default definePlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', drain)\n})\n",[629,2652,2653,2671,2675,2695,2721],{"__ignoreMap":651},[655,2654,2655,2657,2659,2661,2663,2665,2667,2669],{"class":657,"line":658},[655,2656,662],{"class":661},[655,2658,666],{"class":665},[655,2660,784],{"class":669},[655,2662,673],{"class":665},[655,2664,676],{"class":661},[655,2666,679],{"class":665},[655,2668,793],{"class":682},[655,2670,686],{"class":665},[655,2672,2673],{"class":657,"line":689},[655,2674,693],{"emptyLinePlaceholder":692},[655,2676,2677,2679,2681,2683,2685,2687,2689,2691,2693],{"class":657,"line":696},[655,2678,699],{"class":661},[655,2680,702],{"class":661},[655,2682,784],{"class":705},[655,2684,709],{"class":669},[655,2686,709],{"class":665},[655,2688,715],{"class":714},[655,2690,718],{"class":665},[655,2692,722],{"class":721},[655,2694,725],{"class":665},[655,2696,2697,2699,2701,2703,2705,2707,2709,2711,2713,2715,2717,2719],{"class":657,"line":728},[655,2698,731],{"class":669},[655,2700,734],{"class":665},[655,2702,737],{"class":669},[655,2704,734],{"class":665},[655,2706,742],{"class":705},[655,2708,709],{"class":745},[655,2710,748],{"class":665},[655,2712,751],{"class":682},[655,2714,748],{"class":665},[655,2716,756],{"class":665},[655,2718,1074],{"class":669},[655,2720,770],{"class":745},[655,2722,2723,2725],{"class":657,"line":764},[655,2724,767],{"class":665},[655,2726,770],{"class":669},[645,2728,2730],{"className":647,"code":2729,"filename":295,"language":649,"meta":1185,"style":651},"import { evlog } from 'evlog\u002Freact-router'\n\nexport const middleware: Route.MiddlewareFunction[] = [\n  evlog({ drain }),\n]\n",[629,2731,2732,2750,2754,2776,2792],{"__ignoreMap":651},[655,2733,2734,2736,2738,2740,2742,2744,2746,2748],{"class":657,"line":658},[655,2735,662],{"class":661},[655,2737,666],{"class":665},[655,2739,1196],{"class":669},[655,2741,673],{"class":665},[655,2743,676],{"class":661},[655,2745,679],{"class":665},[655,2747,1205],{"class":682},[655,2749,686],{"class":665},[655,2751,2752],{"class":657,"line":689},[655,2753,693],{"emptyLinePlaceholder":692},[655,2755,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774],{"class":657,"line":696},[655,2757,699],{"class":661},[655,2759,925],{"class":721},[655,2761,1238],{"class":669},[655,2763,965],{"class":665},[655,2765,1244],{"class":1243},[655,2767,734],{"class":665},[655,2769,1249],{"class":1243},[655,2771,1252],{"class":669},[655,2773,1255],{"class":665},[655,2775,1258],{"class":669},[655,2777,2778,2780,2782,2784,2786,2788,2790],{"class":657,"line":728},[655,2779,1263],{"class":705},[655,2781,709],{"class":669},[655,2783,1071],{"class":665},[655,2785,1986],{"class":669},[655,2787,767],{"class":665},[655,2789,718],{"class":669},[655,2791,975],{"class":665},[655,2793,2794],{"class":657,"line":764},[655,2795,1286],{"class":669},[645,2797,2799],{"className":647,"code":2798,"filename":280,"language":649,"meta":1290,"style":651},"app.use(evlog({ drain }))\n",[629,2800,2801],{"__ignoreMap":651},[655,2802,2803,2805,2807,2809,2811,2813,2815,2817,2819,2821],{"class":657,"line":658},[655,2804,1319],{"class":669},[655,2806,734],{"class":665},[655,2808,1324],{"class":705},[655,2810,709],{"class":669},[655,2812,1329],{"class":705},[655,2814,709],{"class":669},[655,2816,1071],{"class":665},[655,2818,1986],{"class":669},[655,2820,767],{"class":665},[655,2822,1346],{"class":669},[645,2824,2825],{"className":647,"code":2798,"filename":275,"language":649,"meta":1290,"style":651},[629,2826,2827],{"__ignoreMap":651},[655,2828,2829,2831,2833,2835,2837,2839,2841,2843,2845,2847],{"class":657,"line":658},[655,2830,1319],{"class":669},[655,2832,734],{"class":665},[655,2834,1324],{"class":705},[655,2836,709],{"class":669},[655,2838,1329],{"class":705},[655,2840,709],{"class":669},[655,2842,1071],{"class":665},[655,2844,1986],{"class":669},[655,2846,767],{"class":665},[655,2848,1346],{"class":669},[645,2850,2852],{"className":647,"code":2851,"filename":285,"language":649,"meta":1290,"style":651},"await app.register(evlog, { drain })\n",[629,2853,2854],{"__ignoreMap":651},[655,2855,2856,2858,2860,2862,2864,2866,2868,2870,2872,2874],{"class":657,"line":658},[655,2857,1432],{"class":661},[655,2859,1435],{"class":669},[655,2861,734],{"class":665},[655,2863,1440],{"class":705},[655,2865,1443],{"class":669},[655,2867,756],{"class":665},[655,2869,666],{"class":665},[655,2871,1986],{"class":669},[655,2873,767],{"class":665},[655,2875,770],{"class":669},[645,2877,2878],{"className":647,"code":2798,"filename":290,"language":649,"meta":1290,"style":651},[629,2879,2880],{"__ignoreMap":651},[655,2881,2882,2884,2886,2888,2890,2892,2894,2896,2898,2900],{"class":657,"line":658},[655,2883,1319],{"class":669},[655,2885,734],{"class":665},[655,2887,1324],{"class":705},[655,2889,709],{"class":669},[655,2891,1329],{"class":705},[655,2893,709],{"class":669},[655,2895,1071],{"class":665},[655,2897,1986],{"class":669},[655,2899,767],{"class":665},[655,2901,1346],{"class":669},[645,2903,2905],{"className":647,"code":2904,"filename":270,"language":649,"meta":1517,"style":651},"EvlogModule.forRoot({ drain })\n",[629,2906,2907],{"__ignoreMap":651},[655,2908,2909,2911,2913,2915,2917,2919,2921,2923],{"class":657,"line":658},[655,2910,1546],{"class":669},[655,2912,734],{"class":665},[655,2914,1551],{"class":705},[655,2916,709],{"class":669},[655,2918,1071],{"class":665},[655,2920,1986],{"class":669},[655,2922,767],{"class":665},[655,2924,770],{"class":669},[645,2926,2928],{"className":647,"code":2927,"filename":314,"language":649,"meta":1571,"style":651},"import { withEvlog } from 'evlog\u002Forpc'\n\nconst handler = withEvlog(new RPCHandler(router), { drain })\n",[629,2929,2930,2948,2952],{"__ignoreMap":651},[655,2931,2932,2934,2936,2938,2940,2942,2944,2946],{"class":657,"line":658},[655,2933,662],{"class":661},[655,2935,666],{"class":665},[655,2937,930],{"class":669},[655,2939,673],{"class":665},[655,2941,676],{"class":661},[655,2943,679],{"class":665},[655,2945,1590],{"class":682},[655,2947,686],{"class":665},[655,2949,2950],{"class":657,"line":689},[655,2951,693],{"emptyLinePlaceholder":692},[655,2953,2954,2956,2958,2960,2962,2964,2966,2968,2970,2972,2974,2976,2978],{"class":657,"line":696},[655,2955,1619],{"class":721},[655,2957,1622],{"class":669},[655,2959,1255],{"class":665},[655,2961,930],{"class":705},[655,2963,709],{"class":669},[655,2965,1631],{"class":665},[655,2967,1634],{"class":705},[655,2969,1637],{"class":669},[655,2971,756],{"class":665},[655,2973,666],{"class":665},[655,2975,1986],{"class":669},[655,2977,767],{"class":665},[655,2979,770],{"class":669},[645,2981,2983],{"className":647,"code":2982,"filename":300,"language":649,"meta":1657,"style":651},"import { withEvlog } from 'evlog\u002Fworkers'\n\nexport default withEvlog(handler, { drain })\n",[629,2984,2985,3003,3007],{"__ignoreMap":651},[655,2986,2987,2989,2991,2993,2995,2997,2999,3001],{"class":657,"line":658},[655,2988,662],{"class":661},[655,2990,666],{"class":665},[655,2992,930],{"class":669},[655,2994,673],{"class":665},[655,2996,676],{"class":661},[655,2998,679],{"class":665},[655,3000,1676],{"class":682},[655,3002,686],{"class":665},[655,3004,3005],{"class":657,"line":689},[655,3006,693],{"emptyLinePlaceholder":692},[655,3008,3009,3011,3013,3015,3017,3019,3021,3023,3025],{"class":657,"line":696},[655,3010,699],{"class":661},[655,3012,702],{"class":661},[655,3014,930],{"class":705},[655,3016,1711],{"class":669},[655,3018,756],{"class":665},[655,3020,666],{"class":665},[655,3022,1986],{"class":669},[655,3024,767],{"class":665},[655,3026,770],{"class":669},[645,3028,3030],{"className":647,"code":3029,"filename":305,"language":649,"meta":651,"style":651},"initLogger({ drain })\n",[629,3031,3032],{"__ignoreMap":651},[655,3033,3034,3036,3038,3040,3042,3044],{"class":657,"line":658},[655,3035,1759],{"class":705},[655,3037,709],{"class":669},[655,3039,1071],{"class":665},[655,3041,1986],{"class":669},[655,3043,767],{"class":665},[655,3045,770],{"class":669},[621,3047,3049],{"id":3048},"what-a-drain-receives","What a drain receives",[614,3051,3052,3053,3055],{},"Every adapter receives a ",[629,3054,631],{}," with:",[3057,3058,3059,3075],"table",{},[3060,3061,3062],"thead",{},[3063,3064,3065,3069,3072],"tr",{},[3066,3067,3068],"th",{},"Field",[3066,3070,3071],{},"Type",[3066,3073,3074],{},"Description",[3076,3077,3078,3094,3119],"tbody",{},[3063,3079,3080,3086,3091],{},[3081,3082,3083],"td",{},[629,3084,3085],{},"event",[3081,3087,3088],{},[629,3089,3090],{},"WideEvent",[3081,3092,3093],{},"The complete log event with all accumulated context",[3063,3095,3096,3101,3106],{},[3081,3097,3098],{},[629,3099,3100],{},"request",[3081,3102,3103],{},[629,3104,3105],{},"object",[3081,3107,3108,3109,3112,3113,3112,3116,718],{},"Request metadata (",[629,3110,3111],{},"method",", ",[629,3114,3115],{},"path",[629,3117,3118],{},"requestId",[3063,3120,3121,3126,3130],{},[3081,3122,3123],{},[629,3124,3125],{},"headers",[3081,3127,3128],{},[629,3129,3105],{},[3081,3131,3132],{},"Safe HTTP headers (sensitive headers are filtered)",[1777,3134,3136,3139,3140,3112,3143,3112,3146,3149],{"color":3135,"icon":393},"success",[634,3137,3138],{},"Security:"," Sensitive headers (",[629,3141,3142],{},"authorization",[629,3144,3145],{},"cookie",[629,3147,3148],{},"x-api-key",", etc.) are automatically filtered and never passed to adapters.",[621,3151,3153],{"id":3152},"configure-it-from-the-environment","Configure it from the environment",[614,3155,3156],{},"All adapters support automatic configuration via environment variables. No code changes needed when deploying to different environments.",[614,3158,3159],{},"Each adapter reads from standard environment variables, and the same names work in every framework:",[645,3161,3166],{"className":3162,"code":3163,"filename":3164,"language":3165,"meta":651,"style":651},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Axiom\nAXIOM_API_KEY=xaat-xxx\nAXIOM_DATASET=my-logs\n\n# OTLP\nOTLP_ENDPOINT=https:\u002F\u002Fotlp.example.com\n\n# HyperDX\nHYPERDX_API_KEY=\u003CYOUR_HYPERDX_API_KEY_HERE>\n\n# PostHog\nPOSTHOG_API_KEY=phc_xxx\n\n# Sentry\nSENTRY_DSN=https:\u002F\u002Fkey@o0.ingest.sentry.io\u002F123\n\n# Better Stack\nBETTER_STACK_API_KEY=your-source-token\n\n# Datadog\nDD_API_KEY=your-api-key\nDD_SITE=datadoghq.eu\n\n# Grafana Loki\nLOKI_ENDPOINT=http:\u002F\u002Flocalhost:3100\n# Grafana Cloud only:\nLOKI_USER=123456\nLOKI_API_KEY=glc_xxx\n\n# ClickHouse\nCLICKHOUSE_ENDPOINT=http:\u002F\u002Flocalhost:8123\nCLICKHOUSE_PASSWORD=your-password\n",".env","bash",[629,3167,3168,3173,3183,3193,3197,3202,3212,3216,3221,3235,3239,3244,3254,3258,3263,3273,3277,3282,3292,3296,3301,3312,3323,3328,3334,3345,3351,3362,3373,3378,3384,3395],{"__ignoreMap":651},[655,3169,3170],{"class":657,"line":658},[655,3171,3172],{"class":2090},"# Axiom\n",[655,3174,3175,3178,3180],{"class":657,"line":689},[655,3176,3177],{"class":669},"AXIOM_API_KEY",[655,3179,1255],{"class":665},[655,3181,3182],{"class":682},"xaat-xxx\n",[655,3184,3185,3188,3190],{"class":657,"line":696},[655,3186,3187],{"class":669},"AXIOM_DATASET",[655,3189,1255],{"class":665},[655,3191,3192],{"class":682},"my-logs\n",[655,3194,3195],{"class":657,"line":728},[655,3196,693],{"emptyLinePlaceholder":692},[655,3198,3199],{"class":657,"line":764},[655,3200,3201],{"class":2090},"# OTLP\n",[655,3203,3204,3207,3209],{"class":657,"line":866},[655,3205,3206],{"class":669},"OTLP_ENDPOINT",[655,3208,1255],{"class":665},[655,3210,3211],{"class":682},"https:\u002F\u002Fotlp.example.com\n",[655,3213,3214],{"class":657,"line":992},[655,3215,693],{"emptyLinePlaceholder":692},[655,3217,3218],{"class":657,"line":2001},[655,3219,3220],{"class":2090},"# HyperDX\n",[655,3222,3223,3226,3229,3232],{"class":657,"line":2006},[655,3224,3225],{"class":669},"HYPERDX_API_KEY",[655,3227,3228],{"class":665},"=\u003C",[655,3230,3231],{"class":682},"YOUR_HYPERDX_API_KEY_HERE",[655,3233,3234],{"class":665},">\n",[655,3236,3237],{"class":657,"line":2015},[655,3238,693],{"emptyLinePlaceholder":692},[655,3240,3241],{"class":657,"line":2040},[655,3242,3243],{"class":2090},"# PostHog\n",[655,3245,3246,3249,3251],{"class":657,"line":2047},[655,3247,3248],{"class":669},"POSTHOG_API_KEY",[655,3250,1255],{"class":665},[655,3252,3253],{"class":682},"phc_xxx\n",[655,3255,3256],{"class":657,"line":2054},[655,3257,693],{"emptyLinePlaceholder":692},[655,3259,3260],{"class":657,"line":2059},[655,3261,3262],{"class":2090},"# Sentry\n",[655,3264,3265,3268,3270],{"class":657,"line":2094},[655,3266,3267],{"class":669},"SENTRY_DSN",[655,3269,1255],{"class":665},[655,3271,3272],{"class":682},"https:\u002F\u002Fkey@o0.ingest.sentry.io\u002F123\n",[655,3274,3275],{"class":657,"line":2099},[655,3276,693],{"emptyLinePlaceholder":692},[655,3278,3279],{"class":657,"line":2145},[655,3280,3281],{"class":2090},"# Better Stack\n",[655,3283,3284,3287,3289],{"class":657,"line":2173},[655,3285,3286],{"class":669},"BETTER_STACK_API_KEY",[655,3288,1255],{"class":665},[655,3290,3291],{"class":682},"your-source-token\n",[655,3293,3294],{"class":657,"line":2187},[655,3295,693],{"emptyLinePlaceholder":692},[655,3297,3298],{"class":657,"line":2192},[655,3299,3300],{"class":2090},"# Datadog\n",[655,3302,3304,3307,3309],{"class":657,"line":3303},21,[655,3305,3306],{"class":669},"DD_API_KEY",[655,3308,1255],{"class":665},[655,3310,3311],{"class":682},"your-api-key\n",[655,3313,3315,3318,3320],{"class":657,"line":3314},22,[655,3316,3317],{"class":669},"DD_SITE",[655,3319,1255],{"class":665},[655,3321,3322],{"class":682},"datadoghq.eu\n",[655,3324,3326],{"class":657,"line":3325},23,[655,3327,693],{"emptyLinePlaceholder":692},[655,3329,3331],{"class":657,"line":3330},24,[655,3332,3333],{"class":2090},"# Grafana Loki\n",[655,3335,3337,3340,3342],{"class":657,"line":3336},25,[655,3338,3339],{"class":669},"LOKI_ENDPOINT",[655,3341,1255],{"class":665},[655,3343,3344],{"class":682},"http:\u002F\u002Flocalhost:3100\n",[655,3346,3348],{"class":657,"line":3347},26,[655,3349,3350],{"class":2090},"# Grafana Cloud only:\n",[655,3352,3354,3357,3359],{"class":657,"line":3353},27,[655,3355,3356],{"class":669},"LOKI_USER",[655,3358,1255],{"class":665},[655,3360,3361],{"class":682},"123456\n",[655,3363,3365,3368,3370],{"class":657,"line":3364},28,[655,3366,3367],{"class":669},"LOKI_API_KEY",[655,3369,1255],{"class":665},[655,3371,3372],{"class":682},"glc_xxx\n",[655,3374,3376],{"class":657,"line":3375},29,[655,3377,693],{"emptyLinePlaceholder":692},[655,3379,3381],{"class":657,"line":3380},30,[655,3382,3383],{"class":2090},"# ClickHouse\n",[655,3385,3387,3390,3392],{"class":657,"line":3386},31,[655,3388,3389],{"class":669},"CLICKHOUSE_ENDPOINT",[655,3391,1255],{"class":665},[655,3393,3394],{"class":682},"http:\u002F\u002Flocalhost:8123\n",[655,3396,3398,3401,3403],{"class":657,"line":3397},32,[655,3399,3400],{"class":669},"CLICKHOUSE_PASSWORD",[655,3402,1255],{"class":665},[655,3404,3405],{"class":682},"your-password\n",[614,3407,3408,3409,3412],{},"Adapters auto-read from these variables, so a ",[629,3410,3411],{},"create*Drain()"," factory takes no arguments.",[621,3414,3416],{"id":3415},"missing-credentials","Missing credentials",[614,3418,3419],{},"Behavior depends on which API you call:",[3057,3421,3422,3431],{},[3060,3423,3424],{},[3063,3425,3426,3429],{},[3066,3427,3428],{},"API",[3066,3430,3416],{},[3076,3432,3433,3446],{},[3063,3434,3435,3440],{},[3081,3436,3437,3439],{},[629,3438,3411],{}," (factory)",[3081,3441,3442,3445],{},[629,3443,3444],{},"console.error"," + drain becomes a no-op — the HTTP response is never blocked",[3063,3447,3448,3458],{},[3081,3449,3450,3453,3454,3457],{},[629,3451,3452],{},"sendTo*"," \u002F ",[629,3455,3456],{},"sendBatchTo*"," (direct)",[3081,3459,3460],{},"Throws if required credentials are absent — caller must pass a complete config",[614,3462,3463],{},"This split is intentional: drains run fire-and-forget after each request; direct send helpers are for scripts and tests where a silent failure would hide misconfiguration.",[3465,3466,3467],"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 .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}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":651,"searchDepth":689,"depth":689,"links":3469},[3470,3471,3472,3473,3474,3475,3476],{"id":623,"depth":689,"text":624},{"id":1791,"depth":689,"text":1792},{"id":1848,"depth":689,"text":1849},{"id":2219,"depth":689,"text":2220},{"id":3048,"depth":689,"text":3049},{"id":3152,"depth":689,"text":3153},{"id":3415,"depth":689,"text":3416},"Send your logs to external services with evlog adapters. Built-in support for popular observability platforms and custom destinations.","md",[3480,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492],{"label":166,"icon":169,"to":167,"color":2206,"variant":3481},"subtle",{"label":171,"icon":174,"to":172,"color":2206,"variant":3481},{"label":176,"icon":179,"to":177,"color":2206,"variant":3481},{"label":181,"icon":184,"to":182,"color":2206,"variant":3481},{"label":186,"icon":189,"to":187,"color":2206,"variant":3481},{"label":196,"icon":199,"to":197,"color":2206,"variant":3481},{"label":201,"icon":204,"to":202,"color":2206,"variant":3481},{"label":206,"icon":209,"to":207,"color":2206,"variant":3481},{"label":211,"icon":214,"to":212,"color":2206,"variant":3481},{"label":221,"icon":224,"to":222,"color":2206,"variant":3481},{"label":226,"icon":229,"to":227,"color":2206,"variant":3481},{"label":231,"icon":234,"to":232,"color":2206,"variant":3481},{},{"title":41,"icon":44},{"title":609,"description":3477},"ZE6yRWOW9eaBWT4ap-lJvKDI2S-PxpXJ12lYx0txYZE",[3498,3500],{"title":41,"path":149,"stem":150,"description":3499,"icon":151,"children":-1},"Pick a framework integration to capture requests, then pick adapters to ship events. Frameworks decide where the logger lives, adapters where events go.",{"title":166,"path":167,"stem":168,"description":3501,"icon":169,"children":-1},"Send wide events to Axiom for powerful querying, dashboards, and alerting. Zero-config setup with environment variables and automatic batching.",1791230885233]