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