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