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