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