[{"data":1,"prerenderedAt":1950},["ShallowReactive",2],{"navigation_docs":3,"-integrate-adapters-cloud-better-stack":538,"-integrate-adapters-cloud-better-stack-surround":1945},[4,30,80,128,308,440,499],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"CLI","\u002Fcli","3.cli",[85,88,93,98,103,108,113,118,123],{"title":36,"path":86,"stem":87,"icon":44},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":89,"path":90,"stem":91,"icon":92},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":94,"path":95,"stem":96,"icon":97},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":99,"path":100,"stem":101,"icon":102},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":104,"path":105,"stem":106,"icon":107},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":109,"path":110,"stem":111,"icon":112},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":119,"path":120,"stem":121,"icon":122},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":124,"path":125,"stem":126,"icon":127},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":129,"path":130,"stem":131,"children":132,"page":29},"Integrate","\u002Fintegrate","4.integrate",[133,137,220],{"title":36,"path":134,"stem":135,"icon":136},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":138,"path":139,"stem":140,"children":141,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[142,145,175,200],{"title":36,"path":143,"stem":144,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":146,"path":147,"stem":148,"children":149,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[150,155,160,165,170],{"title":151,"path":152,"stem":153,"icon":154},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":156,"path":157,"stem":158,"icon":159},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":161,"path":162,"stem":163,"icon":164},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":166,"path":167,"stem":168,"icon":169},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":171,"path":172,"stem":173,"icon":174},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":176,"path":177,"stem":178,"children":179,"page":29},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[180,185,190,195],{"title":181,"path":182,"stem":183,"icon":184},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":186,"path":187,"stem":188,"icon":189},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":191,"path":192,"stem":193,"icon":194},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":196,"path":197,"stem":198,"icon":199},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":201,"path":202,"stem":203,"children":204,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[205,210,215],{"title":206,"path":207,"stem":208,"icon":209},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":211,"path":212,"stem":213,"icon":214},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":216,"path":217,"stem":218,"icon":219},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":221,"path":222,"stem":223,"children":224,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[225,229,234,239,244,249,254,259,264,269,274,279,284,289,293,298,303],{"title":36,"path":226,"stem":227,"icon":228},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":230,"path":231,"stem":232,"icon":233},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":235,"path":236,"stem":237,"icon":238},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":240,"path":241,"stem":242,"icon":243},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":245,"path":246,"stem":247,"icon":248},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":250,"path":251,"stem":252,"icon":253},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":255,"path":256,"stem":257,"icon":258},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":260,"path":261,"stem":262,"icon":263},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":265,"path":266,"stem":267,"icon":268},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":270,"path":271,"stem":272,"icon":273},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":275,"path":276,"stem":277,"icon":278},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":280,"path":281,"stem":282,"icon":283},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":285,"path":286,"stem":287,"icon":288},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":290,"path":291,"stem":292,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":294,"path":295,"stem":296,"icon":297},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":299,"path":300,"stem":301,"icon":302},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":304,"path":305,"stem":306,"icon":307},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":309,"path":310,"stem":311,"children":312,"page":29},"Use Cases","\u002Fuse-cases","5.use-cases",[313,316,321,350,377,409,430,435],{"title":36,"path":314,"stem":315,"icon":102},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":317,"path":318,"stem":319,"icon":320},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":322,"icon":323,"path":324,"stem":325,"children":326,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[327,330,335,340,345],{"title":36,"path":328,"stem":329,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":331,"path":332,"stem":333,"icon":334},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":336,"path":337,"stem":338,"icon":339},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":341,"path":342,"stem":343,"icon":344},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":346,"path":347,"stem":348,"icon":349},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":351,"icon":352,"path":353,"stem":354,"children":355,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[356,359,364,369,373],{"title":36,"path":357,"stem":358,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":360,"path":361,"stem":362,"icon":363},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":365,"path":366,"stem":367,"icon":368},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":370,"path":371,"stem":372,"icon":320},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":374,"path":375,"stem":376,"icon":107},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":378,"icon":379,"path":380,"stem":381,"children":382,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[383,386,391,396,401,405],{"title":36,"path":384,"stem":385,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":387,"path":388,"stem":389,"icon":390},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":392,"path":393,"stem":394,"icon":395},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":397,"path":398,"stem":399,"icon":400},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":402,"path":403,"stem":404,"icon":379},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":406,"path":407,"stem":408,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":346,"icon":107,"path":410,"stem":411,"children":412,"page":29},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[413,416,421,426],{"title":36,"path":414,"stem":415,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":417,"path":418,"stem":419,"icon":420},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":422,"path":423,"stem":424,"icon":425},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":427,"path":428,"stem":429,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":431,"path":432,"stem":433,"icon":434},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":436,"path":437,"stem":438,"icon":439},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":441,"path":442,"stem":443,"children":444,"page":29},"Extend","\u002Fextend","6.extend",[445,449,454,459,463,468,472,476,480,484,489,494],{"title":36,"path":446,"stem":447,"icon":448},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":450,"path":451,"stem":452,"icon":453},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":455,"path":456,"stem":457,"icon":458},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":460,"path":461,"stem":462,"icon":453},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":464,"path":465,"stem":466,"icon":467},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":406,"path":469,"stem":470,"icon":471},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":473,"path":474,"stem":475,"icon":448},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":477,"path":478,"stem":479,"icon":434},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":481,"path":482,"stem":483,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":485,"path":486,"stem":487,"icon":488},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":490,"path":491,"stem":492,"icon":493},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":495,"path":496,"stem":497,"icon":498},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":427,"path":500,"stem":501,"children":502,"page":29},"\u002Freference","7.reference",[503,507,512,515,520,524,529,533],{"title":36,"path":504,"stem":505,"icon":506},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":508,"path":509,"stem":510,"icon":511},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":374,"path":513,"stem":514,"icon":107},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":516,"path":517,"stem":518,"icon":519},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":521,"path":522,"stem":523,"icon":379},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":525,"path":526,"stem":527,"icon":528},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":530,"path":531,"stem":532,"icon":434},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":534,"path":535,"stem":536,"icon":537},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"id":539,"title":540,"body":541,"description":1930,"extension":1931,"links":1932,"meta":1941,"navigation":1942,"path":167,"seo":1943,"stem":168,"__hash__":1944},"docs\u002F4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack.md","Better Stack Adapter",{"type":542,"value":543,"toc":1907},"minimark",[544,554,596,600,603,647,650,655,678,682,701,718,722,1301,1304,1307,1310,1340,1344,1383,1387,1394,1461,1465,1468,1525,1529,1624,1628,1634,1657,1660,1664,1667,1707,1711,1715,1724,1727,1731,1737,1741,1744,1748,1751,1879,1883,1903],[545,546,547,553],"p",{},[548,549,166],"a",{"href":550,"rel":551},"https:\u002F\u002Fbetterstack.com",[552],"nofollow"," is a log management platform with search, alerting, and dashboards. The evlog Better Stack adapter sends your wide events to the Better Stack HTTP ingestion API.",[555,556,559,562,584],"prompt",{":actions":557,"description":558,"icon":169},"[\"copy\",\"cursor\",\"claude\"]","Add the Better Stack drain adapter",[545,560,561],{},"Add the Better Stack drain adapter to send evlog wide events to Better Stack.",[563,564,565,569,572,575,578,581],"ol",{},[566,567,568],"li",{},"Identify which framework I'm using and follow its evlog integration pattern",[566,570,571],{},"Install evlog if not already installed",[566,573,574],{},"Import createBetterStackDrain from 'evlog\u002Fbetter-stack'",[566,576,577],{},"Wire createBetterStackDrain() into my framework's drain configuration",[566,579,580],{},"Set BETTER_STACK_API_KEY environment variable",[566,582,583],{},"Test by triggering a request and checking the Better Stack logs dashboard",[545,585,586,587,591,592],{},"Adapter docs: ",[548,588,589],{"href":589,"rel":590},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack",[552],"\nFramework setup: ",[548,593,594],{"href":594,"rel":595},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fframeworks\u002Foverview",[552],[597,598,20],"h2",{"id":599},"installation",[545,601,602],{},"The Better Stack adapter comes bundled with evlog:",[604,605,611],"pre",{"className":606,"code":607,"filename":608,"language":609,"meta":610,"style":610},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createBetterStackDrain } from 'evlog\u002Fbetter-stack'\n","src\u002Findex.ts","typescript","",[612,613,614],"code",{"__ignoreMap":610},[615,616,619,623,627,631,634,637,640,644],"span",{"class":617,"line":618},"line",1,[615,620,622],{"class":621},"s7zQu","import",[615,624,626],{"class":625},"sMK4o"," {",[615,628,630],{"class":629},"sTEyZ"," createBetterStackDrain",[615,632,633],{"class":625}," }",[615,635,636],{"class":621}," from",[615,638,639],{"class":625}," '",[615,641,643],{"class":642},"sfazB","evlog\u002Fbetter-stack",[615,645,646],{"class":625},"'\n",[597,648,25],{"id":649},"quick-start",[651,652,654],"h3",{"id":653},"_1-get-your-source-token","1. Get your source token",[563,656,657,664,672],{},[566,658,659,660],{},"Create a ",[548,661,663],{"href":550,"rel":662},[552],"Better Stack account",[566,665,666,667,671],{},"Go to ",[668,669,670],"strong",{},"Telemetry > Sources"," and create a new source",[566,673,674,675],{},"Copy the ",[668,676,677],{},"Source Token",[651,679,681],{"id":680},"_2-set-environment-variables","2. Set environment variables",[604,683,688],{"className":684,"code":685,"filename":686,"language":687,"meta":610,"style":610},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","BETTER_STACK_API_KEY=your-source-token-here\n",".env","bash",[612,689,690],{"__ignoreMap":610},[615,691,692,695,698],{"class":617,"line":618},[615,693,694],{"class":629},"BETTER_STACK_API_KEY",[615,696,697],{"class":625},"=",[615,699,700],{"class":642},"your-source-token-here\n",[702,703,705,706,709,710,713,714,717],"callout",{"color":704,"icon":13},"info","In Better Stack's dashboard this credential is called a ",[668,707,708],{},"source token",". evlog names the config field ",[612,711,712],{},"apiKey"," for consistency across adapters. The legacy ",[612,715,716],{},"sourceToken"," field still works until the next major release.",[651,719,721],{"id":720},"_3-wire-the-drain-to-your-framework","3. Wire the drain to your framework",[723,724,725,840,971,1033,1087,1146,1200,1253],"code-group",{},[604,726,729],{"className":606,"code":727,"filename":728,"language":609,"meta":610,"style":610},"\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\nimport { createBetterStackDrain } from 'evlog\u002Fbetter-stack'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createBetterStackDrain())\n})\n","Nuxt \u002F Nitro",[612,730,731,737,756,763,795,831],{"__ignoreMap":610},[615,732,733],{"class":617,"line":618},[615,734,736],{"class":735},"sHwdD","\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\n",[615,738,740,742,744,746,748,750,752,754],{"class":617,"line":739},2,[615,741,622],{"class":621},[615,743,626],{"class":625},[615,745,630],{"class":629},[615,747,633],{"class":625},[615,749,636],{"class":621},[615,751,639],{"class":625},[615,753,643],{"class":642},[615,755,646],{"class":625},[615,757,759],{"class":617,"line":758},3,[615,760,762],{"emptyLinePlaceholder":761},true,"\n",[615,764,766,769,772,776,779,781,785,788,792],{"class":617,"line":765},4,[615,767,768],{"class":621},"export",[615,770,771],{"class":621}," default",[615,773,775],{"class":774},"s2Zo4"," defineNitroPlugin",[615,777,778],{"class":629},"(",[615,780,778],{"class":625},[615,782,784],{"class":783},"sHdIc","nitroApp",[615,786,787],{"class":625},")",[615,789,791],{"class":790},"spNyl"," =>",[615,793,794],{"class":625}," {\n",[615,796,798,801,804,807,809,812,815,818,821,823,826,828],{"class":617,"line":797},5,[615,799,800],{"class":629},"  nitroApp",[615,802,803],{"class":625},".",[615,805,806],{"class":629},"hooks",[615,808,803],{"class":625},[615,810,811],{"class":774},"hook",[615,813,778],{"class":814},"swJcz",[615,816,817],{"class":625},"'",[615,819,820],{"class":642},"evlog:drain",[615,822,817],{"class":625},[615,824,825],{"class":625},",",[615,827,630],{"class":774},[615,829,830],{"class":814},"())\n",[615,832,834,837],{"class":617,"line":833},6,[615,835,836],{"class":625},"}",[615,838,839],{"class":629},")\n",[604,841,843],{"className":606,"code":842,"filename":235,"language":609,"meta":610,"style":610},"\u002F\u002F lib\u002Fevlog.ts\nimport { createEvlog } from 'evlog\u002Fnext'\nimport { createBetterStackDrain } from 'evlog\u002Fbetter-stack'\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  drain: createBetterStackDrain(),\n})\n",[612,844,845,850,870,888,892,931,949,964],{"__ignoreMap":610},[615,846,847],{"class":617,"line":618},[615,848,849],{"class":735},"\u002F\u002F lib\u002Fevlog.ts\n",[615,851,852,854,856,859,861,863,865,868],{"class":617,"line":739},[615,853,622],{"class":621},[615,855,626],{"class":625},[615,857,858],{"class":629}," createEvlog",[615,860,633],{"class":625},[615,862,636],{"class":621},[615,864,639],{"class":625},[615,866,867],{"class":642},"evlog\u002Fnext",[615,869,646],{"class":625},[615,871,872,874,876,878,880,882,884,886],{"class":617,"line":758},[615,873,622],{"class":621},[615,875,626],{"class":625},[615,877,630],{"class":629},[615,879,633],{"class":625},[615,881,636],{"class":621},[615,883,639],{"class":625},[615,885,643],{"class":642},[615,887,646],{"class":625},[615,889,890],{"class":617,"line":765},[615,891,762],{"emptyLinePlaceholder":761},[615,893,894,896,899,901,904,906,909,911,914,916,919,921,924,926,928],{"class":617,"line":797},[615,895,768],{"class":621},[615,897,898],{"class":790}," const",[615,900,626],{"class":625},[615,902,903],{"class":629}," withEvlog",[615,905,825],{"class":625},[615,907,908],{"class":629}," useLogger",[615,910,825],{"class":625},[615,912,913],{"class":629}," log",[615,915,825],{"class":625},[615,917,918],{"class":629}," createError ",[615,920,836],{"class":625},[615,922,923],{"class":625}," =",[615,925,858],{"class":774},[615,927,778],{"class":629},[615,929,930],{"class":625},"{\n",[615,932,933,936,939,941,944,946],{"class":617,"line":833},[615,934,935],{"class":814},"  service",[615,937,938],{"class":625},":",[615,940,639],{"class":625},[615,942,943],{"class":642},"my-app",[615,945,817],{"class":625},[615,947,948],{"class":625},",\n",[615,950,952,955,957,959,962],{"class":617,"line":951},7,[615,953,954],{"class":814},"  drain",[615,956,938],{"class":625},[615,958,630],{"class":774},[615,960,961],{"class":629},"()",[615,963,948],{"class":625},[615,965,967,969],{"class":617,"line":966},8,[615,968,836],{"class":625},[615,970,839],{"class":629},[604,972,974],{"className":606,"code":973,"filename":265,"language":609,"meta":610,"style":610},"import { createBetterStackDrain } from 'evlog\u002Fbetter-stack'\n\napp.use(evlog({ drain: createBetterStackDrain() }))\n",[612,975,976,994,998],{"__ignoreMap":610},[615,977,978,980,982,984,986,988,990,992],{"class":617,"line":618},[615,979,622],{"class":621},[615,981,626],{"class":625},[615,983,630],{"class":629},[615,985,633],{"class":625},[615,987,636],{"class":621},[615,989,639],{"class":625},[615,991,643],{"class":642},[615,993,646],{"class":625},[615,995,996],{"class":617,"line":739},[615,997,762],{"emptyLinePlaceholder":761},[615,999,1000,1003,1005,1008,1010,1013,1015,1018,1021,1023,1025,1028,1030],{"class":617,"line":758},[615,1001,1002],{"class":629},"app",[615,1004,803],{"class":625},[615,1006,1007],{"class":774},"use",[615,1009,778],{"class":629},[615,1011,1012],{"class":774},"evlog",[615,1014,778],{"class":629},[615,1016,1017],{"class":625},"{",[615,1019,1020],{"class":814}," drain",[615,1022,938],{"class":625},[615,1024,630],{"class":774},[615,1026,1027],{"class":629},"() ",[615,1029,836],{"class":625},[615,1031,1032],{"class":629},"))\n",[604,1034,1035],{"className":606,"code":973,"filename":260,"language":609,"meta":610,"style":610},[612,1036,1037,1055,1059],{"__ignoreMap":610},[615,1038,1039,1041,1043,1045,1047,1049,1051,1053],{"class":617,"line":618},[615,1040,622],{"class":621},[615,1042,626],{"class":625},[615,1044,630],{"class":629},[615,1046,633],{"class":625},[615,1048,636],{"class":621},[615,1050,639],{"class":625},[615,1052,643],{"class":642},[615,1054,646],{"class":625},[615,1056,1057],{"class":617,"line":739},[615,1058,762],{"emptyLinePlaceholder":761},[615,1060,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085],{"class":617,"line":758},[615,1062,1002],{"class":629},[615,1064,803],{"class":625},[615,1066,1007],{"class":774},[615,1068,778],{"class":629},[615,1070,1012],{"class":774},[615,1072,778],{"class":629},[615,1074,1017],{"class":625},[615,1076,1020],{"class":814},[615,1078,938],{"class":625},[615,1080,630],{"class":774},[615,1082,1027],{"class":629},[615,1084,836],{"class":625},[615,1086,1032],{"class":629},[604,1088,1090],{"className":606,"code":1089,"filename":270,"language":609,"meta":610,"style":610},"import { createBetterStackDrain } from 'evlog\u002Fbetter-stack'\n\nawait app.register(evlog, { drain: createBetterStackDrain() })\n",[612,1091,1092,1110,1114],{"__ignoreMap":610},[615,1093,1094,1096,1098,1100,1102,1104,1106,1108],{"class":617,"line":618},[615,1095,622],{"class":621},[615,1097,626],{"class":625},[615,1099,630],{"class":629},[615,1101,633],{"class":625},[615,1103,636],{"class":621},[615,1105,639],{"class":625},[615,1107,643],{"class":642},[615,1109,646],{"class":625},[615,1111,1112],{"class":617,"line":739},[615,1113,762],{"emptyLinePlaceholder":761},[615,1115,1116,1119,1122,1124,1127,1130,1132,1134,1136,1138,1140,1142,1144],{"class":617,"line":758},[615,1117,1118],{"class":621},"await",[615,1120,1121],{"class":629}," app",[615,1123,803],{"class":625},[615,1125,1126],{"class":774},"register",[615,1128,1129],{"class":629},"(evlog",[615,1131,825],{"class":625},[615,1133,626],{"class":625},[615,1135,1020],{"class":814},[615,1137,938],{"class":625},[615,1139,630],{"class":774},[615,1141,1027],{"class":629},[615,1143,836],{"class":625},[615,1145,839],{"class":629},[604,1147,1148],{"className":606,"code":973,"filename":275,"language":609,"meta":610,"style":610},[612,1149,1150,1168,1172],{"__ignoreMap":610},[615,1151,1152,1154,1156,1158,1160,1162,1164,1166],{"class":617,"line":618},[615,1153,622],{"class":621},[615,1155,626],{"class":625},[615,1157,630],{"class":629},[615,1159,633],{"class":625},[615,1161,636],{"class":621},[615,1163,639],{"class":625},[615,1165,643],{"class":642},[615,1167,646],{"class":625},[615,1169,1170],{"class":617,"line":739},[615,1171,762],{"emptyLinePlaceholder":761},[615,1173,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198],{"class":617,"line":758},[615,1175,1002],{"class":629},[615,1177,803],{"class":625},[615,1179,1007],{"class":774},[615,1181,778],{"class":629},[615,1183,1012],{"class":774},[615,1185,778],{"class":629},[615,1187,1017],{"class":625},[615,1189,1020],{"class":814},[615,1191,938],{"class":625},[615,1193,630],{"class":774},[615,1195,1027],{"class":629},[615,1197,836],{"class":625},[615,1199,1032],{"class":629},[604,1201,1203],{"className":606,"code":1202,"filename":255,"language":609,"meta":610,"style":610},"import { createBetterStackDrain } from 'evlog\u002Fbetter-stack'\n\nEvlogModule.forRoot({ drain: createBetterStackDrain() })\n",[612,1204,1205,1223,1227],{"__ignoreMap":610},[615,1206,1207,1209,1211,1213,1215,1217,1219,1221],{"class":617,"line":618},[615,1208,622],{"class":621},[615,1210,626],{"class":625},[615,1212,630],{"class":629},[615,1214,633],{"class":625},[615,1216,636],{"class":621},[615,1218,639],{"class":625},[615,1220,643],{"class":642},[615,1222,646],{"class":625},[615,1224,1225],{"class":617,"line":739},[615,1226,762],{"emptyLinePlaceholder":761},[615,1228,1229,1232,1234,1237,1239,1241,1243,1245,1247,1249,1251],{"class":617,"line":758},[615,1230,1231],{"class":629},"EvlogModule",[615,1233,803],{"class":625},[615,1235,1236],{"class":774},"forRoot",[615,1238,778],{"class":629},[615,1240,1017],{"class":625},[615,1242,1020],{"class":814},[615,1244,938],{"class":625},[615,1246,630],{"class":774},[615,1248,1027],{"class":629},[615,1250,836],{"class":625},[615,1252,839],{"class":629},[604,1254,1256],{"className":606,"code":1255,"filename":290,"language":609,"meta":610,"style":610},"import { createBetterStackDrain } from 'evlog\u002Fbetter-stack'\n\ninitLogger({ drain: createBetterStackDrain() })\n",[612,1257,1258,1276,1280],{"__ignoreMap":610},[615,1259,1260,1262,1264,1266,1268,1270,1272,1274],{"class":617,"line":618},[615,1261,622],{"class":621},[615,1263,626],{"class":625},[615,1265,630],{"class":629},[615,1267,633],{"class":625},[615,1269,636],{"class":621},[615,1271,639],{"class":625},[615,1273,643],{"class":642},[615,1275,646],{"class":625},[615,1277,1278],{"class":617,"line":739},[615,1279,762],{"emptyLinePlaceholder":761},[615,1281,1282,1285,1287,1289,1291,1293,1295,1297,1299],{"class":617,"line":758},[615,1283,1284],{"class":774},"initLogger",[615,1286,778],{"class":629},[615,1288,1017],{"class":625},[615,1290,1020],{"class":814},[615,1292,938],{"class":625},[615,1294,630],{"class":774},[615,1296,1027],{"class":629},[615,1298,836],{"class":625},[615,1300,839],{"class":629},[545,1302,1303],{},"That's it! Your logs will now appear in Better Stack.",[597,1305,508],{"id":1306},"configuration",[545,1308,1309],{},"The adapter reads configuration from multiple sources (highest priority first):",[563,1311,1312,1321,1331],{},[566,1313,1314,1317,1318],{},[668,1315,1316],{},"Overrides"," passed to ",[612,1319,1320],{},"createBetterStackDrain()",[566,1322,1323,1326,1327,1330],{},[668,1324,1325],{},"Runtime config"," at ",[612,1328,1329],{},"runtimeConfig.betterStack"," (Nuxt\u002FNitro only)",[566,1332,1333,1336,1337,787],{},[668,1334,1335],{},"Environment variables"," (",[612,1338,1339],{},"BETTER_STACK_*",[651,1341,1343],{"id":1342},"environment-variables","Environment Variables",[1345,1346,1347,1360],"table",{},[1348,1349,1350],"thead",{},[1351,1352,1353,1357],"tr",{},[1354,1355,1356],"th",{},"Variable",[1354,1358,1359],{},"Description",[1361,1362,1363,1373],"tbody",{},[1351,1364,1365,1370],{},[1366,1367,1368],"td",{},[612,1369,694],{},[1366,1371,1372],{},"Better Stack source token (required)",[1351,1374,1375,1380],{},[1366,1376,1377],{},[612,1378,1379],{},"BETTER_STACK_ENDPOINT",[1366,1381,1382],{},"Custom ingestion endpoint",[651,1384,1386],{"id":1385},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[545,1388,1389,1390,1393],{},"Configure via ",[612,1391,1392],{},"nuxt.config.ts"," for type-safe configuration:",[604,1395,1397],{"className":606,"code":1396,"filename":1392,"language":609,"meta":610,"style":610},"export default defineNuxtConfig({\n  runtimeConfig: {\n    betterStack: {\n      apiKey: '', \u002F\u002F Set via BETTER_STACK_API_KEY\n    },\n  },\n})\n",[612,1398,1399,1412,1421,1430,1445,1450,1455],{"__ignoreMap":610},[615,1400,1401,1403,1405,1408,1410],{"class":617,"line":618},[615,1402,768],{"class":621},[615,1404,771],{"class":621},[615,1406,1407],{"class":774}," defineNuxtConfig",[615,1409,778],{"class":629},[615,1411,930],{"class":625},[615,1413,1414,1417,1419],{"class":617,"line":739},[615,1415,1416],{"class":814},"  runtimeConfig",[615,1418,938],{"class":625},[615,1420,794],{"class":625},[615,1422,1423,1426,1428],{"class":617,"line":758},[615,1424,1425],{"class":814},"    betterStack",[615,1427,938],{"class":625},[615,1429,794],{"class":625},[615,1431,1432,1435,1437,1440,1442],{"class":617,"line":765},[615,1433,1434],{"class":814},"      apiKey",[615,1436,938],{"class":625},[615,1438,1439],{"class":625}," ''",[615,1441,825],{"class":625},[615,1443,1444],{"class":735}," \u002F\u002F Set via BETTER_STACK_API_KEY\n",[615,1446,1447],{"class":617,"line":797},[615,1448,1449],{"class":625},"    },\n",[615,1451,1452],{"class":617,"line":833},[615,1453,1454],{"class":625},"  },\n",[615,1456,1457,1459],{"class":617,"line":951},[615,1458,836],{"class":625},[615,1460,839],{"class":629},[651,1462,1464],{"id":1463},"override-options","Override Options",[545,1466,1467],{},"Pass options directly to override any configuration:",[604,1469,1472],{"className":606,"code":1470,"filename":1471,"language":609,"meta":610,"style":610},"const drain = createBetterStackDrain({\n  apiKey: 'my-key',\n  timeout: 10000,\n})\n","server\u002Fplugins\u002Fevlog-drain.ts",[612,1473,1474,1490,1506,1519],{"__ignoreMap":610},[615,1475,1476,1479,1482,1484,1486,1488],{"class":617,"line":618},[615,1477,1478],{"class":790},"const",[615,1480,1481],{"class":629}," drain ",[615,1483,697],{"class":625},[615,1485,630],{"class":774},[615,1487,778],{"class":629},[615,1489,930],{"class":625},[615,1491,1492,1495,1497,1499,1502,1504],{"class":617,"line":739},[615,1493,1494],{"class":814},"  apiKey",[615,1496,938],{"class":625},[615,1498,639],{"class":625},[615,1500,1501],{"class":642},"my-key",[615,1503,817],{"class":625},[615,1505,948],{"class":625},[615,1507,1508,1511,1513,1517],{"class":617,"line":758},[615,1509,1510],{"class":814},"  timeout",[615,1512,938],{"class":625},[615,1514,1516],{"class":1515},"sbssI"," 10000",[615,1518,948],{"class":625},[615,1520,1521,1523],{"class":617,"line":765},[615,1522,836],{"class":625},[615,1524,839],{"class":629},[651,1526,1528],{"id":1527},"full-configuration-reference","Full Configuration Reference",[1345,1530,1531,1546],{},[1348,1532,1533],{},[1351,1534,1535,1538,1541,1544],{},[1354,1536,1537],{},"Option",[1354,1539,1540],{},"Type",[1354,1542,1543],{},"Default",[1354,1545,1359],{},[1361,1547,1548,1564,1585,1604],{},[1351,1549,1550,1554,1559,1562],{},[1366,1551,1552],{},[612,1553,712],{},[1366,1555,1556],{},[612,1557,1558],{},"string",[1366,1560,1561],{},"-",[1366,1563,1372],{},[1351,1565,1566,1570,1574,1576],{},[1366,1567,1568],{},[612,1569,716],{},[1366,1571,1572],{},[612,1573,1558],{},[1366,1575,1561],{},[1366,1577,1578,1581,1582,1584],{},[668,1579,1580],{},"Deprecated."," Use ",[612,1583,712],{}," instead",[1351,1586,1587,1592,1596,1601],{},[1366,1588,1589],{},[612,1590,1591],{},"endpoint",[1366,1593,1594],{},[612,1595,1558],{},[1366,1597,1598],{},[612,1599,1600],{},"https:\u002F\u002Fin.logs.betterstack.com",[1366,1602,1603],{},"Ingestion endpoint",[1351,1605,1606,1611,1616,1621],{},[1366,1607,1608],{},[612,1609,1610],{},"timeout",[1366,1612,1613],{},[612,1614,1615],{},"number",[1366,1617,1618],{},[612,1619,1620],{},"5000",[1366,1622,1623],{},"Request timeout in milliseconds",[597,1625,1627],{"id":1626},"log-transformation","Log Transformation",[545,1629,1630,1631,938],{},"evlog wide events are transformed using ",[612,1632,1633],{},"toBetterStackEvent()",[1635,1636,1637,1651],"ul",{},[566,1638,1639,1642,1643,1646,1647,1650],{},[668,1640,1641],{},"Timestamp",": ",[612,1644,1645],{},"timestamp"," is mapped to ",[612,1648,1649],{},"dt"," (Better Stack's expected ISO-8601 timestamp field)",[566,1652,1653,1656],{},[668,1654,1655],{},"All other fields",": Spread as-is into the event body",[545,1658,1659],{},"Better Stack accepts arbitrary JSON fields, so all your wide event context (level, service, action, user data, etc.) is automatically searchable.",[597,1661,1663],{"id":1662},"querying-logs-in-better-stack","Querying Logs in Better Stack",[545,1665,1666],{},"Better Stack's log search takes a query over any field:",[1635,1668,1669,1675,1681,1695,1701],{},[566,1670,1671,1674],{},[668,1672,1673],{},"Live tail",": Stream logs in real time",[566,1676,1677,1680],{},[668,1678,1679],{},"Full-text search",": Search across all fields",[566,1682,1683,1686,1687,1690,1691,1694],{},[668,1684,1685],{},"Structured queries",": Filter by ",[612,1688,1689],{},"level:error",", ",[612,1692,1693],{},"service:my-app",", or any wide event field",[566,1696,1697,1700],{},[668,1698,1699],{},"Dashboards",": Create custom dashboards from your wide event data",[566,1702,1703,1706],{},[668,1704,1705],{},"Alerts",": Set up alerts based on log patterns or thresholds",[597,1708,1710],{"id":1709},"troubleshooting","Troubleshooting",[651,1712,1714],{"id":1713},"missing-apikey-error","Missing apiKey error",[604,1716,1722],{"className":1717,"code":1719,"filename":1720,"language":1721,"meta":610},[1718],"language-text","[evlog\u002Fbetter-stack] Missing apiKey. Set BETTER_STACK_API_KEY env var or pass to createBetterStackDrain()\n","Console","text",[612,1723,1719],{"__ignoreMap":610},[545,1725,1726],{},"Make sure your environment variable is set and the server was restarted after adding it.",[651,1728,1730],{"id":1729},"_401-unauthorized","401 Unauthorized",[545,1732,1733,1734,1736],{},"Your source token may be invalid or revoked. Generate a new source token in ",[668,1735,670],{}," in the Better Stack dashboard.",[651,1738,1740],{"id":1739},"_403-forbidden","403 Forbidden",[545,1742,1743],{},"The source may be archived or deleted. Create a new source in Better Stack.",[597,1745,1747],{"id":1746},"direct-api-usage","Direct API Usage",[545,1749,1750],{},"For advanced use cases, you can use the lower-level functions:",[604,1752,1755],{"className":606,"code":1753,"filename":1754,"language":609,"meta":610,"style":610},"import { sendToBetterStack, sendBatchToBetterStack } from 'evlog\u002Fbetter-stack'\n\n\u002F\u002F Send a single event\nawait sendToBetterStack(event, {\n  apiKey: process.env.BETTER_STACK_API_KEY!,\n})\n\n\u002F\u002F Send multiple events in one request\nawait sendBatchToBetterStack(events, {\n  apiKey: process.env.BETTER_STACK_API_KEY!,\n})\n","server\u002Futils\u002Fbetter-stack.ts",[612,1756,1757,1781,1785,1790,1803,1824,1830,1834,1839,1853,1872],{"__ignoreMap":610},[615,1758,1759,1761,1763,1766,1768,1771,1773,1775,1777,1779],{"class":617,"line":618},[615,1760,622],{"class":621},[615,1762,626],{"class":625},[615,1764,1765],{"class":629}," sendToBetterStack",[615,1767,825],{"class":625},[615,1769,1770],{"class":629}," sendBatchToBetterStack",[615,1772,633],{"class":625},[615,1774,636],{"class":621},[615,1776,639],{"class":625},[615,1778,643],{"class":642},[615,1780,646],{"class":625},[615,1782,1783],{"class":617,"line":739},[615,1784,762],{"emptyLinePlaceholder":761},[615,1786,1787],{"class":617,"line":758},[615,1788,1789],{"class":735},"\u002F\u002F Send a single event\n",[615,1791,1792,1794,1796,1799,1801],{"class":617,"line":765},[615,1793,1118],{"class":621},[615,1795,1765],{"class":774},[615,1797,1798],{"class":629},"(event",[615,1800,825],{"class":625},[615,1802,794],{"class":625},[615,1804,1805,1807,1809,1812,1814,1817,1819,1821],{"class":617,"line":797},[615,1806,1494],{"class":814},[615,1808,938],{"class":625},[615,1810,1811],{"class":629}," process",[615,1813,803],{"class":625},[615,1815,1816],{"class":629},"env",[615,1818,803],{"class":625},[615,1820,694],{"class":629},[615,1822,1823],{"class":625},"!,\n",[615,1825,1826,1828],{"class":617,"line":833},[615,1827,836],{"class":625},[615,1829,839],{"class":629},[615,1831,1832],{"class":617,"line":951},[615,1833,762],{"emptyLinePlaceholder":761},[615,1835,1836],{"class":617,"line":966},[615,1837,1838],{"class":735},"\u002F\u002F Send multiple events in one request\n",[615,1840,1842,1844,1846,1849,1851],{"class":617,"line":1841},9,[615,1843,1118],{"class":621},[615,1845,1770],{"class":774},[615,1847,1848],{"class":629},"(events",[615,1850,825],{"class":625},[615,1852,794],{"class":625},[615,1854,1856,1858,1860,1862,1864,1866,1868,1870],{"class":617,"line":1855},10,[615,1857,1494],{"class":814},[615,1859,938],{"class":625},[615,1861,1811],{"class":629},[615,1863,803],{"class":625},[615,1865,1816],{"class":629},[615,1867,803],{"class":625},[615,1869,694],{"class":629},[615,1871,1823],{"class":625},[615,1873,1875,1877],{"class":617,"line":1874},11,[615,1876,836],{"class":625},[615,1878,839],{"class":629},[597,1880,1882],{"id":1881},"next-steps","Next Steps",[1635,1884,1885,1891,1897],{},[566,1886,1887,1890],{},[548,1888,1889],{"href":152},"Axiom Adapter"," - Send logs to Axiom for querying and dashboards",[566,1892,1893,1896],{},[548,1894,1895],{"href":192},"OTLP Adapter"," - Send logs via OpenTelemetry Protocol",[566,1898,1899,1902],{},[548,1900,1901],{"href":491},"Custom Adapters"," - Build your own adapter",[1904,1905,1906],"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 .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 .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 pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":610,"searchDepth":739,"depth":739,"links":1908},[1909,1910,1915,1921,1922,1923,1928,1929],{"id":599,"depth":739,"text":20},{"id":649,"depth":739,"text":25,"children":1911},[1912,1913,1914],{"id":653,"depth":758,"text":654},{"id":680,"depth":758,"text":681},{"id":720,"depth":758,"text":721},{"id":1306,"depth":739,"text":508,"children":1916},[1917,1918,1919,1920],{"id":1342,"depth":758,"text":1343},{"id":1385,"depth":758,"text":1386},{"id":1463,"depth":758,"text":1464},{"id":1527,"depth":758,"text":1528},{"id":1626,"depth":739,"text":1627},{"id":1662,"depth":739,"text":1663},{"id":1709,"depth":739,"text":1710,"children":1924},[1925,1926,1927],{"id":1713,"depth":758,"text":1714},{"id":1729,"depth":758,"text":1730},{"id":1739,"depth":758,"text":1740},{"id":1746,"depth":739,"text":1747},{"id":1881,"depth":739,"text":1882},"Send wide events to Better Stack (formerly Logtail) for log management, alerting, and dashboards. Zero-config setup with environment variables.","md",[1933,1940],{"label":1934,"icon":1935,"to":1936,"target":1937,"color":1938,"variant":1939},"Better Stack Dashboard","i-lucide-external-link","https:\u002F\u002Flogs.betterstack.com","_blank","neutral","subtle",{"label":1889,"icon":154,"to":152,"color":1938,"variant":1939},{},{"title":166,"icon":169},{"title":540,"description":1930},"mzxp12UfFUz4fOi-se6-XIg-fGJeX9PvW3Sn9ANh58U",[1946,1948],{"title":161,"path":162,"stem":163,"description":1947,"icon":164,"children":-1},"Send structured logs to Sentry Logs for high-cardinality querying and debugging. Zero-config setup with environment variables.",{"title":171,"path":172,"stem":173,"description":1949,"icon":174,"children":-1},"Send wide events to Datadog Logs via the native HTTP intake API. Supports all Datadog sites and DD_* environment variables.",1786817437529]