[{"data":1,"prerenderedAt":1147},["ShallowReactive",2],{"navigation_docs":3,"-adapters-better-stack":191,"-adapters-better-stack-surround":1142},[4,30,65,115,132,146],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","/getting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","/getting-started/quick-start","1.getting-started/3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","/getting-started/agent-skills","1.getting-started/4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Core Concepts","/core-concepts","2.core-concepts",[35,40,45,50,55,60],{"title":36,"path":37,"stem":38,"icon":39},"Wide Events","/core-concepts/wide-events","2.core-concepts/1.wide-events","i-lucide-layers",{"title":41,"path":42,"stem":43,"icon":44},"Structured Errors","/core-concepts/structured-errors","2.core-concepts/2.structured-errors","i-lucide-shield-alert",{"title":46,"path":47,"stem":48,"icon":49},"Best Practices","/core-concepts/best-practices","2.core-concepts/3.best-practices","i-lucide-shield-check",{"title":51,"path":52,"stem":53,"icon":54},"Typed Fields","/core-concepts/typed-fields","2.core-concepts/4.typed-fields","i-simple-icons-typescript",{"title":56,"path":57,"stem":58,"icon":59},"Sampling","/core-concepts/sampling","2.core-concepts/5.sampling","i-lucide-filter",{"title":61,"path":62,"stem":63,"icon":64},"Client Logging","/core-concepts/client-logging","2.core-concepts/6.client-logging","i-lucide-monitor",{"title":66,"path":67,"stem":68,"children":69,"page":29},"Adapters","/adapters","3.adapters",[70,75,80,85,90,95,100,105,110],{"title":71,"path":72,"stem":73,"icon":74},"Overview","/adapters/overview","3.adapters/1.overview","i-custom-plug",{"title":76,"path":77,"stem":78,"icon":79},"Axiom","/adapters/axiom","3.adapters/2.axiom","i-custom-axiom",{"title":81,"path":82,"stem":83,"icon":84},"OTLP","/adapters/otlp","3.adapters/3.otlp","i-simple-icons-opentelemetry",{"title":86,"path":87,"stem":88,"icon":89},"PostHog","/adapters/posthog","3.adapters/4.posthog","i-simple-icons-posthog",{"title":91,"path":92,"stem":93,"icon":94},"Sentry","/adapters/sentry","3.adapters/5.sentry","i-simple-icons-sentry",{"title":96,"path":97,"stem":98,"icon":99},"Better Stack","/adapters/better-stack","3.adapters/6.better-stack","i-simple-icons-betterstack",{"title":101,"path":102,"stem":103,"icon":104},"Custom Adapters","/adapters/custom","3.adapters/7.custom","i-lucide-code",{"title":106,"path":107,"stem":108,"icon":109},"Pipeline","/adapters/pipeline","3.adapters/8.pipeline","i-lucide-workflow",{"title":111,"path":112,"stem":113,"icon":114},"Browser","/adapters/browser","3.adapters/9.browser","i-lucide-globe",{"title":116,"path":117,"stem":118,"children":119,"page":29},"Enrichers","/enrichers","4.enrichers",[120,123,128],{"title":71,"path":121,"stem":122,"icon":28},"/enrichers/overview","4.enrichers/1.overview",{"title":124,"path":125,"stem":126,"icon":127},"Built-in","/enrichers/built-in","4.enrichers/2.built-in","i-lucide-puzzle",{"title":129,"path":130,"stem":131,"icon":104},"Custom","/enrichers/custom","4.enrichers/3.custom",{"title":133,"path":134,"stem":135,"children":136,"page":29},"NuxtHub","/nuxthub","5.nuxthub",[137,141],{"title":71,"path":138,"stem":139,"icon":140},"/nuxthub/overview","5.nuxthub/1.overview","i-lucide-database",{"title":142,"path":143,"stem":144,"icon":145},"Retention","/nuxthub/retention","5.nuxthub/2.retention","i-lucide-clock",{"title":147,"path":148,"stem":149,"children":150,"page":29},"Examples","/examples","6.examples",[151,156,161,166,171,176,181,186],{"title":152,"path":153,"stem":154,"icon":155},"Next.js","/examples/nextjs","6.examples/1.nextjs","i-simple-icons-nextdotjs",{"title":157,"path":158,"stem":159,"icon":160},"SvelteKit","/examples/sveltekit","6.examples/2.sveltekit","i-simple-icons-svelte",{"title":162,"path":163,"stem":164,"icon":165},"TanStack Start","/examples/tanstack-start","6.examples/3.tanstack-start","i-custom-tanstack",{"title":167,"path":168,"stem":169,"icon":170},"NestJS","/examples/nestjs","6.examples/4.nestjs","i-simple-icons-nestjs",{"title":172,"path":173,"stem":174,"icon":175},"Express","/examples/express","6.examples/5.express","i-simple-icons-express",{"title":177,"path":178,"stem":179,"icon":180},"Hono","/examples/hono","6.examples/6.hono","i-simple-icons-hono",{"title":182,"path":183,"stem":184,"icon":185},"Fastify","/examples/fastify","6.examples/7.fastify","i-simple-icons-fastify",{"title":187,"path":188,"stem":189,"icon":190},"Elysia","/examples/elysia","6.examples/8.elysia","i-custom-elysia",{"id":192,"title":193,"body":194,"description":1127,"extension":1128,"links":1129,"meta":1138,"navigation":1139,"path":97,"seo":1140,"stem":98,"__hash__":1141},"docs/3.adapters/6.better-stack.md","Better Stack Adapter",{"type":195,"value":196,"toc":1104},"minimark",[197,207,211,214,258,261,266,291,295,314,318,425,428,432,435,475,479,518,529,533,540,612,616,619,742,746,821,825,831,854,857,861,864,904,908,912,920,923,927,933,937,940,944,947,1077,1081,1100],[198,199,200,206],"p",{},[201,202,96],"a",{"href":203,"rel":204},"https://betterstack.com",[205],"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.",[208,209,15],"h2",{"id":210},"installation",[198,212,213],{},"The Better Stack adapter comes bundled with evlog:",[215,216,222],"pre",{"className":217,"code":218,"filename":219,"language":220,"meta":221,"style":221},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createBetterStackDrain } from 'evlog/better-stack'\n","server/plugins/evlog-drain.ts","typescript","",[223,224,225],"code",{"__ignoreMap":221},[226,227,230,234,238,242,245,248,251,255],"span",{"class":228,"line":229},"line",1,[226,231,233],{"class":232},"s7zQu","import",[226,235,237],{"class":236},"sMK4o"," {",[226,239,241],{"class":240},"sTEyZ"," createBetterStackDrain",[226,243,244],{"class":236}," }",[226,246,247],{"class":232}," from",[226,249,250],{"class":236}," '",[226,252,254],{"class":253},"sfazB","evlog/better-stack",[226,256,257],{"class":236},"'\n",[208,259,20],{"id":260},"quick-start",[262,263,265],"h3",{"id":264},"_1-get-your-source-token","1. Get your source token",[267,268,269,277,285],"ol",{},[270,271,272,273],"li",{},"Create a ",[201,274,276],{"href":203,"rel":275},[205],"Better Stack account",[270,278,279,280,284],{},"Go to ",[281,282,283],"strong",{},"Telemetry > Sources"," and create a new source",[270,286,287,288],{},"Copy the ",[281,289,290],{},"Source Token",[262,292,294],{"id":293},"_2-set-environment-variables","2. Set environment variables",[215,296,301],{"className":297,"code":298,"filename":299,"language":300,"meta":221,"style":221},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NUXT_BETTER_STACK_SOURCE_TOKEN=your-source-token-here\n",".env","bash",[223,302,303],{"__ignoreMap":221},[226,304,305,308,311],{"class":228,"line":229},[226,306,307],{"class":240},"NUXT_BETTER_STACK_SOURCE_TOKEN",[226,309,310],{"class":236},"=",[226,312,313],{"class":253},"your-source-token-here\n",[262,315,317],{"id":316},"_3-create-the-drain-plugin","3. Create the drain plugin",[215,319,321],{"className":217,"code":320,"filename":219,"language":220,"meta":221,"style":221},"import { createBetterStackDrain } from 'evlog/better-stack'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createBetterStackDrain())\n})\n",[223,322,323,341,348,380,416],{"__ignoreMap":221},[226,324,325,327,329,331,333,335,337,339],{"class":228,"line":229},[226,326,233],{"class":232},[226,328,237],{"class":236},[226,330,241],{"class":240},[226,332,244],{"class":236},[226,334,247],{"class":232},[226,336,250],{"class":236},[226,338,254],{"class":253},[226,340,257],{"class":236},[226,342,344],{"class":228,"line":343},2,[226,345,347],{"emptyLinePlaceholder":346},true,"\n",[226,349,351,354,357,361,364,366,370,373,377],{"class":228,"line":350},3,[226,352,353],{"class":232},"export",[226,355,356],{"class":232}," default",[226,358,360],{"class":359},"s2Zo4"," defineNitroPlugin",[226,362,363],{"class":240},"(",[226,365,363],{"class":236},[226,367,369],{"class":368},"sHdIc","nitroApp",[226,371,372],{"class":236},")",[226,374,376],{"class":375},"spNyl"," =>",[226,378,379],{"class":236}," {\n",[226,381,383,386,389,392,394,397,400,403,406,408,411,413],{"class":228,"line":382},4,[226,384,385],{"class":240},"  nitroApp",[226,387,388],{"class":236},".",[226,390,391],{"class":240},"hooks",[226,393,388],{"class":236},[226,395,396],{"class":359},"hook",[226,398,363],{"class":399},"swJcz",[226,401,402],{"class":236},"'",[226,404,405],{"class":253},"evlog:drain",[226,407,402],{"class":236},[226,409,410],{"class":236},",",[226,412,241],{"class":359},[226,414,415],{"class":399},"())\n",[226,417,419,422],{"class":228,"line":418},5,[226,420,421],{"class":236},"}",[226,423,424],{"class":240},")\n",[198,426,427],{},"That's it! Your logs will now appear in Better Stack.",[208,429,431],{"id":430},"configuration","Configuration",[198,433,434],{},"The adapter reads configuration from multiple sources (highest priority first):",[267,436,437,446,455,462],{},[270,438,439,442,443],{},[281,440,441],{},"Overrides"," passed to ",[223,444,445],{},"createBetterStackDrain()",[270,447,448,451,452],{},[281,449,450],{},"Runtime config"," at ",[223,453,454],{},"runtimeConfig.evlog.betterStack",[270,456,457,451,459],{},[281,458,450],{},[223,460,461],{},"runtimeConfig.betterStack",[270,463,464,467,468,471,472,372],{},[281,465,466],{},"Environment variables"," (",[223,469,470],{},"NUXT_BETTER_STACK_*"," or ",[223,473,474],{},"BETTER_STACK_*",[262,476,478],{"id":477},"environment-variables","Environment Variables",[480,481,482,495],"table",{},[483,484,485],"thead",{},[486,487,488,492],"tr",{},[489,490,491],"th",{},"Variable",[489,493,494],{},"Description",[496,497,498,508],"tbody",{},[486,499,500,505],{},[501,502,503],"td",{},[223,504,307],{},[501,506,507],{},"Better Stack source token (required)",[486,509,510,515],{},[501,511,512],{},[223,513,514],{},"NUXT_BETTER_STACK_ENDPOINT",[501,516,517],{},"Custom ingestion endpoint",[198,519,520,521,524,525,528],{},"You can also use ",[223,522,523],{},"BETTER_STACK_SOURCE_TOKEN"," and ",[223,526,527],{},"BETTER_STACK_ENDPOINT"," as fallbacks.",[262,530,532],{"id":531},"runtime-config","Runtime Config",[198,534,535,536,539],{},"Configure via ",[223,537,538],{},"nuxt.config.ts"," for type-safe configuration:",[215,541,543],{"className":217,"code":542,"filename":538,"language":220,"meta":221,"style":221},"export default defineNuxtConfig({\n  runtimeConfig: {\n    betterStack: {\n      sourceToken: '', // Set via NUXT_BETTER_STACK_SOURCE_TOKEN\n    },\n  },\n})\n",[223,544,545,559,569,578,594,599,605],{"__ignoreMap":221},[226,546,547,549,551,554,556],{"class":228,"line":229},[226,548,353],{"class":232},[226,550,356],{"class":232},[226,552,553],{"class":359}," defineNuxtConfig",[226,555,363],{"class":240},[226,557,558],{"class":236},"{\n",[226,560,561,564,567],{"class":228,"line":343},[226,562,563],{"class":399},"  runtimeConfig",[226,565,566],{"class":236},":",[226,568,379],{"class":236},[226,570,571,574,576],{"class":228,"line":350},[226,572,573],{"class":399},"    betterStack",[226,575,566],{"class":236},[226,577,379],{"class":236},[226,579,580,583,585,588,590],{"class":228,"line":382},[226,581,582],{"class":399},"      sourceToken",[226,584,566],{"class":236},[226,586,587],{"class":236}," ''",[226,589,410],{"class":236},[226,591,593],{"class":592},"sHwdD"," // Set via NUXT_BETTER_STACK_SOURCE_TOKEN\n",[226,595,596],{"class":228,"line":418},[226,597,598],{"class":236},"    },\n",[226,600,602],{"class":228,"line":601},6,[226,603,604],{"class":236},"  },\n",[226,606,608,610],{"class":228,"line":607},7,[226,609,421],{"class":236},[226,611,424],{"class":240},[262,613,615],{"id":614},"override-options","Override Options",[198,617,618],{},"Pass options directly to override any configuration:",[215,620,622],{"className":217,"code":621,"filename":219,"language":220,"meta":221,"style":221},"import { createBetterStackDrain } from 'evlog/better-stack'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createBetterStackDrain({\n    sourceToken: 'my-token',\n    timeout: 10000, // 10 seconds\n  }))\n})\n",[223,623,624,642,646,666,694,711,727,735],{"__ignoreMap":221},[226,625,626,628,630,632,634,636,638,640],{"class":228,"line":229},[226,627,233],{"class":232},[226,629,237],{"class":236},[226,631,241],{"class":240},[226,633,244],{"class":236},[226,635,247],{"class":232},[226,637,250],{"class":236},[226,639,254],{"class":253},[226,641,257],{"class":236},[226,643,644],{"class":228,"line":343},[226,645,347],{"emptyLinePlaceholder":346},[226,647,648,650,652,654,656,658,660,662,664],{"class":228,"line":350},[226,649,353],{"class":232},[226,651,356],{"class":232},[226,653,360],{"class":359},[226,655,363],{"class":240},[226,657,363],{"class":236},[226,659,369],{"class":368},[226,661,372],{"class":236},[226,663,376],{"class":375},[226,665,379],{"class":236},[226,667,668,670,672,674,676,678,680,682,684,686,688,690,692],{"class":228,"line":382},[226,669,385],{"class":240},[226,671,388],{"class":236},[226,673,391],{"class":240},[226,675,388],{"class":236},[226,677,396],{"class":359},[226,679,363],{"class":399},[226,681,402],{"class":236},[226,683,405],{"class":253},[226,685,402],{"class":236},[226,687,410],{"class":236},[226,689,241],{"class":359},[226,691,363],{"class":399},[226,693,558],{"class":236},[226,695,696,699,701,703,706,708],{"class":228,"line":418},[226,697,698],{"class":399},"    sourceToken",[226,700,566],{"class":236},[226,702,250],{"class":236},[226,704,705],{"class":253},"my-token",[226,707,402],{"class":236},[226,709,710],{"class":236},",\n",[226,712,713,716,718,722,724],{"class":228,"line":601},[226,714,715],{"class":399},"    timeout",[226,717,566],{"class":236},[226,719,721],{"class":720},"sbssI"," 10000",[226,723,410],{"class":236},[226,725,726],{"class":592}," // 10 seconds\n",[226,728,729,732],{"class":228,"line":607},[226,730,731],{"class":236},"  }",[226,733,734],{"class":399},"))\n",[226,736,738,740],{"class":228,"line":737},8,[226,739,421],{"class":236},[226,741,424],{"class":240},[262,743,745],{"id":744},"full-configuration-reference","Full Configuration Reference",[480,747,748,763],{},[483,749,750],{},[486,751,752,755,758,761],{},[489,753,754],{},"Option",[489,756,757],{},"Type",[489,759,760],{},"Default",[489,762,494],{},[496,764,765,782,801],{},[486,766,767,772,777,780],{},[501,768,769],{},[223,770,771],{},"sourceToken",[501,773,774],{},[223,775,776],{},"string",[501,778,779],{},"-",[501,781,507],{},[486,783,784,789,793,798],{},[501,785,786],{},[223,787,788],{},"endpoint",[501,790,791],{},[223,792,776],{},[501,794,795],{},[223,796,797],{},"https://in.logs.betterstack.com",[501,799,800],{},"Ingestion endpoint",[486,802,803,808,813,818],{},[501,804,805],{},[223,806,807],{},"timeout",[501,809,810],{},[223,811,812],{},"number",[501,814,815],{},[223,816,817],{},"5000",[501,819,820],{},"Request timeout in milliseconds",[208,822,824],{"id":823},"log-transformation","Log Transformation",[198,826,827,828,566],{},"evlog wide events are transformed using ",[223,829,830],{},"toBetterStackEvent()",[832,833,834,848],"ul",{},[270,835,836,839,840,843,844,847],{},[281,837,838],{},"Timestamp",": ",[223,841,842],{},"timestamp"," is mapped to ",[223,845,846],{},"dt"," (Better Stack's expected ISO-8601 timestamp field)",[270,849,850,853],{},[281,851,852],{},"All other fields",": Spread as-is into the event body",[198,855,856],{},"Better Stack accepts arbitrary JSON fields, so all your wide event context (level, service, action, user data, etc.) is automatically searchable.",[208,858,860],{"id":859},"querying-logs-in-better-stack","Querying Logs in Better Stack",[198,862,863],{},"Better Stack provides a powerful log search interface:",[832,865,866,872,878,892,898],{},[270,867,868,871],{},[281,869,870],{},"Live tail",": Stream logs in real time",[270,873,874,877],{},[281,875,876],{},"Full-text search",": Search across all fields",[270,879,880,883,884,887,888,891],{},[281,881,882],{},"Structured queries",": Filter by ",[223,885,886],{},"level:error",", ",[223,889,890],{},"service:my-app",", or any wide event field",[270,893,894,897],{},[281,895,896],{},"Dashboards",": Create custom dashboards from your wide event data",[270,899,900,903],{},[281,901,902],{},"Alerts",": Set up alerts based on log patterns or thresholds",[208,905,907],{"id":906},"troubleshooting","Troubleshooting",[262,909,911],{"id":910},"missing-source-token-error","Missing source token error",[215,913,918],{"className":914,"code":916,"language":917},[915],"language-text","[evlog/better-stack] Missing source token. Set NUXT_BETTER_STACK_SOURCE_TOKEN env var or pass to createBetterStackDrain()\n","text",[223,919,916],{"__ignoreMap":221},[198,921,922],{},"Make sure your environment variable is set and the server was restarted after adding it.",[262,924,926],{"id":925},"_401-unauthorized","401 Unauthorized",[198,928,929,930,932],{},"Your source token may be invalid or revoked. Generate a new source token in ",[281,931,283],{}," in the Better Stack dashboard.",[262,934,936],{"id":935},"_403-forbidden","403 Forbidden",[198,938,939],{},"The source may be archived or deleted. Create a new source in Better Stack.",[208,941,943],{"id":942},"direct-api-usage","Direct API Usage",[198,945,946],{},"For advanced use cases, you can use the lower-level functions:",[215,948,951],{"className":217,"code":949,"filename":950,"language":220,"meta":221,"style":221},"import { sendToBetterStack, sendBatchToBetterStack } from 'evlog/better-stack'\n\n// Send a single event\nawait sendToBetterStack(event, {\n  sourceToken: process.env.BETTER_STACK_SOURCE_TOKEN!,\n})\n\n// Send multiple events in one request\nawait sendBatchToBetterStack(events, {\n  sourceToken: process.env.BETTER_STACK_SOURCE_TOKEN!,\n})\n","server/utils/better-stack.ts",[223,952,953,977,981,986,1000,1022,1028,1032,1037,1051,1070],{"__ignoreMap":221},[226,954,955,957,959,962,964,967,969,971,973,975],{"class":228,"line":229},[226,956,233],{"class":232},[226,958,237],{"class":236},[226,960,961],{"class":240}," sendToBetterStack",[226,963,410],{"class":236},[226,965,966],{"class":240}," sendBatchToBetterStack",[226,968,244],{"class":236},[226,970,247],{"class":232},[226,972,250],{"class":236},[226,974,254],{"class":253},[226,976,257],{"class":236},[226,978,979],{"class":228,"line":343},[226,980,347],{"emptyLinePlaceholder":346},[226,982,983],{"class":228,"line":350},[226,984,985],{"class":592},"// Send a single event\n",[226,987,988,991,993,996,998],{"class":228,"line":382},[226,989,990],{"class":232},"await",[226,992,961],{"class":359},[226,994,995],{"class":240},"(event",[226,997,410],{"class":236},[226,999,379],{"class":236},[226,1001,1002,1005,1007,1010,1012,1015,1017,1019],{"class":228,"line":418},[226,1003,1004],{"class":399},"  sourceToken",[226,1006,566],{"class":236},[226,1008,1009],{"class":240}," process",[226,1011,388],{"class":236},[226,1013,1014],{"class":240},"env",[226,1016,388],{"class":236},[226,1018,523],{"class":240},[226,1020,1021],{"class":236},"!,\n",[226,1023,1024,1026],{"class":228,"line":601},[226,1025,421],{"class":236},[226,1027,424],{"class":240},[226,1029,1030],{"class":228,"line":607},[226,1031,347],{"emptyLinePlaceholder":346},[226,1033,1034],{"class":228,"line":737},[226,1035,1036],{"class":592},"// Send multiple events in one request\n",[226,1038,1040,1042,1044,1047,1049],{"class":228,"line":1039},9,[226,1041,990],{"class":232},[226,1043,966],{"class":359},[226,1045,1046],{"class":240},"(events",[226,1048,410],{"class":236},[226,1050,379],{"class":236},[226,1052,1054,1056,1058,1060,1062,1064,1066,1068],{"class":228,"line":1053},10,[226,1055,1004],{"class":399},[226,1057,566],{"class":236},[226,1059,1009],{"class":240},[226,1061,388],{"class":236},[226,1063,1014],{"class":240},[226,1065,388],{"class":236},[226,1067,523],{"class":240},[226,1069,1021],{"class":236},[226,1071,1073,1075],{"class":228,"line":1072},11,[226,1074,421],{"class":236},[226,1076,424],{"class":240},[208,1078,1080],{"id":1079},"next-steps","Next Steps",[832,1082,1083,1089,1095],{},[270,1084,1085,1088],{},[201,1086,1087],{"href":77},"Axiom Adapter"," - Send logs to Axiom for querying and dashboards",[270,1090,1091,1094],{},[201,1092,1093],{"href":82},"OTLP Adapter"," - Send logs via OpenTelemetry Protocol",[270,1096,1097,1099],{},[201,1098,101],{"href":102}," - Build your own adapter",[1101,1102,1103],"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 .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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":221,"searchDepth":343,"depth":343,"links":1105},[1106,1107,1112,1118,1119,1120,1125,1126],{"id":210,"depth":343,"text":15},{"id":260,"depth":343,"text":20,"children":1108},[1109,1110,1111],{"id":264,"depth":350,"text":265},{"id":293,"depth":350,"text":294},{"id":316,"depth":350,"text":317},{"id":430,"depth":343,"text":431,"children":1113},[1114,1115,1116,1117],{"id":477,"depth":350,"text":478},{"id":531,"depth":350,"text":532},{"id":614,"depth":350,"text":615},{"id":744,"depth":350,"text":745},{"id":823,"depth":343,"text":824},{"id":859,"depth":343,"text":860},{"id":906,"depth":343,"text":907,"children":1121},[1122,1123,1124],{"id":910,"depth":350,"text":911},{"id":925,"depth":350,"text":926},{"id":935,"depth":350,"text":936},{"id":942,"depth":343,"text":943},{"id":1079,"depth":343,"text":1080},"Send wide events to Better Stack (formerly Logtail) for log management, alerting, and dashboards. Zero-config setup with environment variables.","md",[1130,1137],{"label":1131,"icon":1132,"to":1133,"target":1134,"color":1135,"variant":1136},"Better Stack Dashboard","i-lucide-external-link","https://logs.betterstack.com","_blank","neutral","subtle",{"label":1087,"icon":79,"to":77,"color":1135,"variant":1136},{},{"title":96,"icon":99},{"title":193,"description":1127},"S7mWCCBFf3Ojvvg3vHvuvh0suaF7Vfu4VarN2simNwI",[1143,1145],{"title":91,"path":92,"stem":93,"description":1144,"icon":94,"children":-1},"Send structured logs to Sentry Logs for high-cardinality querying and debugging. Zero-config setup with environment variables.",{"title":101,"path":102,"stem":103,"description":1146,"icon":104,"children":-1},"Build your own adapter to send logs to any destination. Factory patterns, batching, filtering, and error handling best practices.",1772902102942]