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