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