[{"data":1,"prerenderedAt":1901},["ShallowReactive",2],{"navigation_docs":3,"-adapters-cloud-sentry":308,"-adapters-cloud-sentry-surround":1896},[4,35,80,124,212,292],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",{"title":30,"path":31,"stem":32,"icon":33},"vs Other Loggers","\u002Fgetting-started\u002Fvs-other-loggers","1.getting-started\u002F5.vs-other-loggers","i-lucide-scale",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Logging","\u002Flogging","2.logging",[40,45,50,55,60,65,70,75],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":66,"path":67,"stem":68,"icon":69},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":71,"path":72,"stem":73,"icon":74},"Better Auth Integration","\u002Flogging\u002Fbetter-auth","2.logging\u002F6.better-auth","i-simple-icons-betterauth",{"title":76,"path":77,"stem":78,"icon":79},"Audit Logs","\u002Flogging\u002Faudit","2.logging\u002F7.audit","i-lucide-shield-check",{"title":81,"path":82,"stem":83,"children":84,"page":34},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[85,90,95,100,105,109,114,119],{"title":86,"path":87,"stem":88,"icon":89},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":91,"path":92,"stem":93,"icon":94},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":96,"path":97,"stem":98,"icon":99},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":101,"path":102,"stem":103,"icon":104},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":106,"path":107,"stem":108,"icon":79},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices",{"title":110,"path":111,"stem":112,"icon":113},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":115,"path":116,"stem":117,"icon":118},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":120,"path":121,"stem":122,"icon":123},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":125,"path":126,"stem":127,"children":128,"page":34},"Frameworks","\u002Fframeworks","4.frameworks",[129,133,138,143,148,153,158,163,168,173,178,183,188,193,197,202,207],{"title":41,"path":130,"stem":131,"icon":132},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":134,"path":135,"stem":136,"icon":137},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":139,"path":140,"stem":141,"icon":142},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":144,"path":145,"stem":146,"icon":147},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":149,"path":150,"stem":151,"icon":152},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":154,"path":155,"stem":156,"icon":157},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":159,"path":160,"stem":161,"icon":162},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":164,"path":165,"stem":166,"icon":167},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":169,"path":170,"stem":171,"icon":172},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":174,"path":175,"stem":176,"icon":177},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":179,"path":180,"stem":181,"icon":182},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":184,"path":185,"stem":186,"icon":187},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":189,"path":190,"stem":191,"icon":192},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":194,"path":195,"stem":196,"icon":104},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":198,"path":199,"stem":200,"icon":201},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":203,"path":204,"stem":205,"icon":206},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":208,"path":209,"stem":210,"icon":211},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F17.custom-integration","i-lucide-puzzle",{"title":213,"path":214,"stem":215,"children":216,"page":34},"Adapters","\u002Fadapters","6.adapters",[217,257,272],{"title":218,"path":219,"stem":220,"children":221,"page":34},"Cloud destinations","\u002Fadapters\u002Fcloud","6.adapters\u002F02.cloud",[222,227,232,237,242,247,252],{"title":223,"path":224,"stem":225,"icon":226},"Axiom","\u002Fadapters\u002Fcloud\u002Faxiom","6.adapters\u002F02.cloud\u002F01.axiom","i-custom-axiom",{"title":228,"path":229,"stem":230,"icon":231},"OTLP","\u002Fadapters\u002Fcloud\u002Fotlp","6.adapters\u002F02.cloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":233,"path":234,"stem":235,"icon":236},"PostHog","\u002Fadapters\u002Fcloud\u002Fposthog","6.adapters\u002F02.cloud\u002F03.posthog","i-simple-icons-posthog",{"title":238,"path":239,"stem":240,"icon":241},"Sentry","\u002Fadapters\u002Fcloud\u002Fsentry","6.adapters\u002F02.cloud\u002F04.sentry","i-simple-icons-sentry",{"title":243,"path":244,"stem":245,"icon":246},"Better Stack","\u002Fadapters\u002Fcloud\u002Fbetter-stack","6.adapters\u002F02.cloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":248,"path":249,"stem":250,"icon":251},"Datadog","\u002Fadapters\u002Fcloud\u002Fdatadog","6.adapters\u002F02.cloud\u002F06.datadog","i-simple-icons-datadog",{"title":253,"path":254,"stem":255,"icon":256},"HyperDX","\u002Fadapters\u002Fcloud\u002Fhyperdx","6.adapters\u002F02.cloud\u002F07.hyperdx","i-custom-hyperdx",{"title":258,"path":259,"stem":260,"children":261,"page":34},"Self-hosted","\u002Fadapters\u002Fself-hosted","6.adapters\u002F03.self-hosted",[262,267],{"title":263,"path":264,"stem":265,"icon":266},"File System","\u002Fadapters\u002Fself-hosted\u002Ffs","6.adapters\u002F03.self-hosted\u002F01.fs","i-lucide-hard-drive",{"title":268,"path":269,"stem":270,"icon":271},"NuxtHub","\u002Fadapters\u002Fself-hosted\u002Fnuxthub","6.adapters\u002F03.self-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":273,"path":274,"stem":275,"children":276,"page":34},"Building blocks","\u002Fadapters\u002Fbuilding-blocks","6.adapters\u002F04.building-blocks",[277,282,287],{"title":278,"path":279,"stem":280,"icon":281},"Pipeline","\u002Fadapters\u002Fbuilding-blocks\u002Fpipeline","6.adapters\u002F04.building-blocks\u002F01.pipeline","i-lucide-workflow",{"title":283,"path":284,"stem":285,"icon":286},"HTTP","\u002Fadapters\u002Fbuilding-blocks\u002Fhttp","6.adapters\u002F04.building-blocks\u002F02.http","i-lucide-globe",{"title":288,"path":289,"stem":290,"icon":291},"Custom Adapters","\u002Fadapters\u002Fbuilding-blocks\u002Fcustom","6.adapters\u002F04.building-blocks\u002F03.custom","i-lucide-code",{"title":293,"path":294,"stem":295,"children":296,"page":34},"Enrichers","\u002Fenrichers","7.enrichers",[297,300,304],{"title":41,"path":298,"stem":299,"icon":28},"\u002Fenrichers\u002Foverview","7.enrichers\u002F1.overview",{"title":301,"path":302,"stem":303,"icon":211},"Built-in","\u002Fenrichers\u002Fbuilt-in","7.enrichers\u002F2.built-in",{"title":305,"path":306,"stem":307,"icon":291},"Custom","\u002Fenrichers\u002Fcustom","7.enrichers\u002F3.custom",{"id":309,"title":310,"body":311,"description":1882,"extension":1883,"links":1884,"meta":1892,"navigation":1893,"path":239,"seo":1894,"stem":240,"__hash__":1895},"docs\u002F6.adapters\u002F02.cloud\u002F04.sentry.md","Sentry Adapter",{"type":312,"value":313,"toc":1859},"minimark",[314,333,375,379,382,426,429,434,456,460,479,483,1062,1068,1071,1074,1108,1112,1179,1183,1190,1313,1317,1320,1401,1405,1512,1516,1522,1609,1613,1616,1645,1649,1653,1657,1666,1669,1673,1676,1683,1687,1693,1697,1700,1826,1830,1855],[315,316,317,323,324,328,329,332],"p",{},[318,319,238],"a",{"href":320,"rel":321},"https:\u002F\u002Fsentry.io",[322],"nofollow"," is an error tracking and performance monitoring platform. The evlog Sentry adapter sends your wide events as ",[325,326,327],"strong",{},"Sentry Structured Logs",", visible in ",[325,330,331],{},"Explore > Logs"," in the Sentry dashboard with high-cardinality searchable attributes.",[334,335,338,341,363],"prompt",{":actions":336,"description":337,"icon":241},"[\"copy\",\"cursor\",\"windsurf\"]","Add the Sentry drain adapter",[315,339,340],{},"Add the Sentry drain adapter to send evlog wide events to Sentry Logs.",[342,343,344,348,351,354,357,360],"ol",{},[345,346,347],"li",{},"Identify which framework I'm using and follow its evlog integration pattern",[345,349,350],{},"Install evlog if not already installed",[345,352,353],{},"Import createSentryDrain from 'evlog\u002Fsentry'",[345,355,356],{},"Wire createSentryDrain() into my framework's drain configuration",[345,358,359],{},"Set SENTRY_DSN environment variable",[345,361,362],{},"Test by triggering a request and checking Sentry > Explore > Logs",[315,364,365,366,370,371],{},"Adapter docs: ",[318,367,368],{"href":368,"rel":369},"https:\u002F\u002Fwww.evlog.dev\u002Fadapters\u002Fcloud\u002Fsentry",[322],"\nFramework setup: ",[318,372,373],{"href":373,"rel":374},"https:\u002F\u002Fwww.evlog.dev\u002Fframeworks",[322],[376,377,15],"h2",{"id":378},"installation",[315,380,381],{},"The Sentry adapter comes bundled with evlog:",[383,384,390],"pre",{"className":385,"code":386,"filename":387,"language":388,"meta":389,"style":389},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createSentryDrain } from 'evlog\u002Fsentry'\n","src\u002Findex.ts","typescript","",[391,392,393],"code",{"__ignoreMap":389},[394,395,398,402,406,410,413,416,419,423],"span",{"class":396,"line":397},"line",1,[394,399,401],{"class":400},"s7zQu","import",[394,403,405],{"class":404},"sMK4o"," {",[394,407,409],{"class":408},"sTEyZ"," createSentryDrain",[394,411,412],{"class":404}," }",[394,414,415],{"class":400}," from",[394,417,418],{"class":404}," '",[394,420,422],{"class":421},"sfazB","evlog\u002Fsentry",[394,424,425],{"class":404},"'\n",[376,427,20],{"id":428},"quick-start",[430,431,433],"h3",{"id":432},"_1-get-your-sentry-dsn","1. Get your Sentry DSN",[342,435,436,443,446],{},[345,437,438,439],{},"Create a ",[318,440,442],{"href":320,"rel":441},[322],"Sentry account",[345,444,445],{},"Create a new project (Node.js or JavaScript)",[345,447,448,449],{},"Find your DSN in ",[325,450,451,452,455],{},"Settings > Projects > ",[394,453,454],{},"Your Project"," > Client Keys (DSN)",[430,457,459],{"id":458},"_2-set-environment-variables","2. Set environment variables",[383,461,466],{"className":462,"code":463,"filename":464,"language":465,"meta":389,"style":389},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SENTRY_DSN=https:\u002F\u002Fyour-public-key@o0.ingest.sentry.io\u002Fyour-project-id\n",".env","bash",[391,467,468],{"__ignoreMap":389},[394,469,470,473,476],{"class":396,"line":397},[394,471,472],{"class":408},"SENTRY_DSN",[394,474,475],{"class":404},"=",[394,477,478],{"class":421},"https:\u002F\u002Fyour-public-key@o0.ingest.sentry.io\u002Fyour-project-id\n",[430,480,482],{"id":481},"_3-wire-the-drain-to-your-framework","3. Wire the drain to your framework",[484,485,486,601,732,794,848,907,961,1014],"code-group",{},[383,487,490],{"className":385,"code":488,"filename":489,"language":388,"meta":389,"style":389},"\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\nimport { createSentryDrain } from 'evlog\u002Fsentry'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createSentryDrain())\n})\n","Nuxt \u002F Nitro",[391,491,492,498,517,524,556,592],{"__ignoreMap":389},[394,493,494],{"class":396,"line":397},[394,495,497],{"class":496},"sHwdD","\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\n",[394,499,501,503,505,507,509,511,513,515],{"class":396,"line":500},2,[394,502,401],{"class":400},[394,504,405],{"class":404},[394,506,409],{"class":408},[394,508,412],{"class":404},[394,510,415],{"class":400},[394,512,418],{"class":404},[394,514,422],{"class":421},[394,516,425],{"class":404},[394,518,520],{"class":396,"line":519},3,[394,521,523],{"emptyLinePlaceholder":522},true,"\n",[394,525,527,530,533,537,540,542,546,549,553],{"class":396,"line":526},4,[394,528,529],{"class":400},"export",[394,531,532],{"class":400}," default",[394,534,536],{"class":535},"s2Zo4"," defineNitroPlugin",[394,538,539],{"class":408},"(",[394,541,539],{"class":404},[394,543,545],{"class":544},"sHdIc","nitroApp",[394,547,548],{"class":404},")",[394,550,552],{"class":551},"spNyl"," =>",[394,554,555],{"class":404}," {\n",[394,557,559,562,565,568,570,573,576,579,582,584,587,589],{"class":396,"line":558},5,[394,560,561],{"class":408},"  nitroApp",[394,563,564],{"class":404},".",[394,566,567],{"class":408},"hooks",[394,569,564],{"class":404},[394,571,572],{"class":535},"hook",[394,574,539],{"class":575},"swJcz",[394,577,578],{"class":404},"'",[394,580,581],{"class":421},"evlog:drain",[394,583,578],{"class":404},[394,585,586],{"class":404},",",[394,588,409],{"class":535},[394,590,591],{"class":575},"())\n",[394,593,595,598],{"class":396,"line":594},6,[394,596,597],{"class":404},"}",[394,599,600],{"class":408},")\n",[383,602,604],{"className":385,"code":603,"filename":139,"language":388,"meta":389,"style":389},"\u002F\u002F lib\u002Fevlog.ts\nimport { createEvlog } from 'evlog\u002Fnext'\nimport { createSentryDrain } from 'evlog\u002Fsentry'\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  drain: createSentryDrain(),\n})\n",[391,605,606,611,631,649,653,692,710,725],{"__ignoreMap":389},[394,607,608],{"class":396,"line":397},[394,609,610],{"class":496},"\u002F\u002F lib\u002Fevlog.ts\n",[394,612,613,615,617,620,622,624,626,629],{"class":396,"line":500},[394,614,401],{"class":400},[394,616,405],{"class":404},[394,618,619],{"class":408}," createEvlog",[394,621,412],{"class":404},[394,623,415],{"class":400},[394,625,418],{"class":404},[394,627,628],{"class":421},"evlog\u002Fnext",[394,630,425],{"class":404},[394,632,633,635,637,639,641,643,645,647],{"class":396,"line":519},[394,634,401],{"class":400},[394,636,405],{"class":404},[394,638,409],{"class":408},[394,640,412],{"class":404},[394,642,415],{"class":400},[394,644,418],{"class":404},[394,646,422],{"class":421},[394,648,425],{"class":404},[394,650,651],{"class":396,"line":526},[394,652,523],{"emptyLinePlaceholder":522},[394,654,655,657,660,662,665,667,670,672,675,677,680,682,685,687,689],{"class":396,"line":558},[394,656,529],{"class":400},[394,658,659],{"class":551}," const",[394,661,405],{"class":404},[394,663,664],{"class":408}," withEvlog",[394,666,586],{"class":404},[394,668,669],{"class":408}," useLogger",[394,671,586],{"class":404},[394,673,674],{"class":408}," log",[394,676,586],{"class":404},[394,678,679],{"class":408}," createError ",[394,681,597],{"class":404},[394,683,684],{"class":404}," =",[394,686,619],{"class":535},[394,688,539],{"class":408},[394,690,691],{"class":404},"{\n",[394,693,694,697,700,702,705,707],{"class":396,"line":594},[394,695,696],{"class":575},"  service",[394,698,699],{"class":404},":",[394,701,418],{"class":404},[394,703,704],{"class":421},"my-app",[394,706,578],{"class":404},[394,708,709],{"class":404},",\n",[394,711,713,716,718,720,723],{"class":396,"line":712},7,[394,714,715],{"class":575},"  drain",[394,717,699],{"class":404},[394,719,409],{"class":535},[394,721,722],{"class":408},"()",[394,724,709],{"class":404},[394,726,728,730],{"class":396,"line":727},8,[394,729,597],{"class":404},[394,731,600],{"class":408},[383,733,735],{"className":385,"code":734,"filename":169,"language":388,"meta":389,"style":389},"import { createSentryDrain } from 'evlog\u002Fsentry'\n\napp.use(evlog({ drain: createSentryDrain() }))\n",[391,736,737,755,759],{"__ignoreMap":389},[394,738,739,741,743,745,747,749,751,753],{"class":396,"line":397},[394,740,401],{"class":400},[394,742,405],{"class":404},[394,744,409],{"class":408},[394,746,412],{"class":404},[394,748,415],{"class":400},[394,750,418],{"class":404},[394,752,422],{"class":421},[394,754,425],{"class":404},[394,756,757],{"class":396,"line":500},[394,758,523],{"emptyLinePlaceholder":522},[394,760,761,764,766,769,771,774,776,779,782,784,786,789,791],{"class":396,"line":519},[394,762,763],{"class":408},"app",[394,765,564],{"class":404},[394,767,768],{"class":535},"use",[394,770,539],{"class":408},[394,772,773],{"class":535},"evlog",[394,775,539],{"class":408},[394,777,778],{"class":404},"{",[394,780,781],{"class":575}," drain",[394,783,699],{"class":404},[394,785,409],{"class":535},[394,787,788],{"class":408},"() ",[394,790,597],{"class":404},[394,792,793],{"class":408},"))\n",[383,795,796],{"className":385,"code":734,"filename":164,"language":388,"meta":389,"style":389},[391,797,798,816,820],{"__ignoreMap":389},[394,799,800,802,804,806,808,810,812,814],{"class":396,"line":397},[394,801,401],{"class":400},[394,803,405],{"class":404},[394,805,409],{"class":408},[394,807,412],{"class":404},[394,809,415],{"class":400},[394,811,418],{"class":404},[394,813,422],{"class":421},[394,815,425],{"class":404},[394,817,818],{"class":396,"line":500},[394,819,523],{"emptyLinePlaceholder":522},[394,821,822,824,826,828,830,832,834,836,838,840,842,844,846],{"class":396,"line":519},[394,823,763],{"class":408},[394,825,564],{"class":404},[394,827,768],{"class":535},[394,829,539],{"class":408},[394,831,773],{"class":535},[394,833,539],{"class":408},[394,835,778],{"class":404},[394,837,781],{"class":575},[394,839,699],{"class":404},[394,841,409],{"class":535},[394,843,788],{"class":408},[394,845,597],{"class":404},[394,847,793],{"class":408},[383,849,851],{"className":385,"code":850,"filename":174,"language":388,"meta":389,"style":389},"import { createSentryDrain } from 'evlog\u002Fsentry'\n\nawait app.register(evlog, { drain: createSentryDrain() })\n",[391,852,853,871,875],{"__ignoreMap":389},[394,854,855,857,859,861,863,865,867,869],{"class":396,"line":397},[394,856,401],{"class":400},[394,858,405],{"class":404},[394,860,409],{"class":408},[394,862,412],{"class":404},[394,864,415],{"class":400},[394,866,418],{"class":404},[394,868,422],{"class":421},[394,870,425],{"class":404},[394,872,873],{"class":396,"line":500},[394,874,523],{"emptyLinePlaceholder":522},[394,876,877,880,883,885,888,891,893,895,897,899,901,903,905],{"class":396,"line":519},[394,878,879],{"class":400},"await",[394,881,882],{"class":408}," app",[394,884,564],{"class":404},[394,886,887],{"class":535},"register",[394,889,890],{"class":408},"(evlog",[394,892,586],{"class":404},[394,894,405],{"class":404},[394,896,781],{"class":575},[394,898,699],{"class":404},[394,900,409],{"class":535},[394,902,788],{"class":408},[394,904,597],{"class":404},[394,906,600],{"class":408},[383,908,909],{"className":385,"code":734,"filename":179,"language":388,"meta":389,"style":389},[391,910,911,929,933],{"__ignoreMap":389},[394,912,913,915,917,919,921,923,925,927],{"class":396,"line":397},[394,914,401],{"class":400},[394,916,405],{"class":404},[394,918,409],{"class":408},[394,920,412],{"class":404},[394,922,415],{"class":400},[394,924,418],{"class":404},[394,926,422],{"class":421},[394,928,425],{"class":404},[394,930,931],{"class":396,"line":500},[394,932,523],{"emptyLinePlaceholder":522},[394,934,935,937,939,941,943,945,947,949,951,953,955,957,959],{"class":396,"line":519},[394,936,763],{"class":408},[394,938,564],{"class":404},[394,940,768],{"class":535},[394,942,539],{"class":408},[394,944,773],{"class":535},[394,946,539],{"class":408},[394,948,778],{"class":404},[394,950,781],{"class":575},[394,952,699],{"class":404},[394,954,409],{"class":535},[394,956,788],{"class":408},[394,958,597],{"class":404},[394,960,793],{"class":408},[383,962,964],{"className":385,"code":963,"filename":159,"language":388,"meta":389,"style":389},"import { createSentryDrain } from 'evlog\u002Fsentry'\n\nEvlogModule.forRoot({ drain: createSentryDrain() })\n",[391,965,966,984,988],{"__ignoreMap":389},[394,967,968,970,972,974,976,978,980,982],{"class":396,"line":397},[394,969,401],{"class":400},[394,971,405],{"class":404},[394,973,409],{"class":408},[394,975,412],{"class":404},[394,977,415],{"class":400},[394,979,418],{"class":404},[394,981,422],{"class":421},[394,983,425],{"class":404},[394,985,986],{"class":396,"line":500},[394,987,523],{"emptyLinePlaceholder":522},[394,989,990,993,995,998,1000,1002,1004,1006,1008,1010,1012],{"class":396,"line":519},[394,991,992],{"class":408},"EvlogModule",[394,994,564],{"class":404},[394,996,997],{"class":535},"forRoot",[394,999,539],{"class":408},[394,1001,778],{"class":404},[394,1003,781],{"class":575},[394,1005,699],{"class":404},[394,1007,409],{"class":535},[394,1009,788],{"class":408},[394,1011,597],{"class":404},[394,1013,600],{"class":408},[383,1015,1017],{"className":385,"code":1016,"filename":194,"language":388,"meta":389,"style":389},"import { createSentryDrain } from 'evlog\u002Fsentry'\n\ninitLogger({ drain: createSentryDrain() })\n",[391,1018,1019,1037,1041],{"__ignoreMap":389},[394,1020,1021,1023,1025,1027,1029,1031,1033,1035],{"class":396,"line":397},[394,1022,401],{"class":400},[394,1024,405],{"class":404},[394,1026,409],{"class":408},[394,1028,412],{"class":404},[394,1030,415],{"class":400},[394,1032,418],{"class":404},[394,1034,422],{"class":421},[394,1036,425],{"class":404},[394,1038,1039],{"class":396,"line":500},[394,1040,523],{"emptyLinePlaceholder":522},[394,1042,1043,1046,1048,1050,1052,1054,1056,1058,1060],{"class":396,"line":519},[394,1044,1045],{"class":535},"initLogger",[394,1047,539],{"class":408},[394,1049,778],{"class":404},[394,1051,781],{"class":575},[394,1053,699],{"class":404},[394,1055,409],{"class":535},[394,1057,788],{"class":408},[394,1059,597],{"class":404},[394,1061,600],{"class":408},[315,1063,1064,1065,1067],{},"That's it! Your logs will now appear in ",[325,1066,331],{}," in Sentry.",[376,1069,91],{"id":1070},"configuration",[315,1072,1073],{},"The adapter reads configuration from multiple sources (highest priority first):",[342,1075,1076,1085,1095],{},[345,1077,1078,1081,1082],{},[325,1079,1080],{},"Overrides"," passed to ",[391,1083,1084],{},"createSentryDrain()",[345,1086,1087,1090,1091,1094],{},[325,1088,1089],{},"Runtime config"," at ",[391,1092,1093],{},"runtimeConfig.sentry"," (Nuxt\u002FNitro only)",[345,1096,1097,1100,1101,1104,1105,548],{},[325,1098,1099],{},"Environment variables"," (",[391,1102,1103],{},"SENTRY_*"," or ",[391,1106,1107],{},"NUXT_SENTRY_*",[430,1109,1111],{"id":1110},"environment-variables","Environment Variables",[1113,1114,1115,1131],"table",{},[1116,1117,1118],"thead",{},[1119,1120,1121,1125,1128],"tr",{},[1122,1123,1124],"th",{},"Variable",[1122,1126,1127],{},"Nuxt alias",[1122,1129,1130],{},"Description",[1132,1133,1134,1149,1164],"tbody",{},[1119,1135,1136,1141,1146],{},[1137,1138,1139],"td",{},[391,1140,472],{},[1137,1142,1143],{},[391,1144,1145],{},"NUXT_SENTRY_DSN",[1137,1147,1148],{},"Sentry DSN (required)",[1119,1150,1151,1156,1161],{},[1137,1152,1153],{},[391,1154,1155],{},"SENTRY_ENVIRONMENT",[1137,1157,1158],{},[391,1159,1160],{},"NUXT_SENTRY_ENVIRONMENT",[1137,1162,1163],{},"Environment name override",[1119,1165,1166,1171,1176],{},[1137,1167,1168],{},[391,1169,1170],{},"SENTRY_RELEASE",[1137,1172,1173],{},[391,1174,1175],{},"NUXT_SENTRY_RELEASE",[1137,1177,1178],{},"Release version override",[430,1180,1182],{"id":1181},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[315,1184,1185,1186,1189],{},"Configure via ",[391,1187,1188],{},"nuxt.config.ts"," for type-safe configuration:",[383,1191,1193],{"className":385,"code":1192,"filename":1188,"language":388,"meta":389,"style":389},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    sentry: {\n      dsn: '', \u002F\u002F Set via NUXT_SENTRY_DSN\n      environment: 'production',\n      release: '1.0.0',\n    },\n  },\n})\n",[391,1194,1195,1208,1230,1239,1248,1263,1279,1295,1300,1306],{"__ignoreMap":389},[394,1196,1197,1199,1201,1204,1206],{"class":396,"line":397},[394,1198,529],{"class":400},[394,1200,532],{"class":400},[394,1202,1203],{"class":535}," defineNuxtConfig",[394,1205,539],{"class":408},[394,1207,691],{"class":404},[394,1209,1210,1213,1215,1218,1220,1223,1225,1228],{"class":396,"line":500},[394,1211,1212],{"class":575},"  modules",[394,1214,699],{"class":404},[394,1216,1217],{"class":408}," [",[394,1219,578],{"class":404},[394,1221,1222],{"class":421},"evlog\u002Fnuxt",[394,1224,578],{"class":404},[394,1226,1227],{"class":408},"]",[394,1229,709],{"class":404},[394,1231,1232,1235,1237],{"class":396,"line":519},[394,1233,1234],{"class":575},"  evlog",[394,1236,699],{"class":404},[394,1238,555],{"class":404},[394,1240,1241,1244,1246],{"class":396,"line":526},[394,1242,1243],{"class":575},"    sentry",[394,1245,699],{"class":404},[394,1247,555],{"class":404},[394,1249,1250,1253,1255,1258,1260],{"class":396,"line":558},[394,1251,1252],{"class":575},"      dsn",[394,1254,699],{"class":404},[394,1256,1257],{"class":404}," ''",[394,1259,586],{"class":404},[394,1261,1262],{"class":496}," \u002F\u002F Set via NUXT_SENTRY_DSN\n",[394,1264,1265,1268,1270,1272,1275,1277],{"class":396,"line":594},[394,1266,1267],{"class":575},"      environment",[394,1269,699],{"class":404},[394,1271,418],{"class":404},[394,1273,1274],{"class":421},"production",[394,1276,578],{"class":404},[394,1278,709],{"class":404},[394,1280,1281,1284,1286,1288,1291,1293],{"class":396,"line":712},[394,1282,1283],{"class":575},"      release",[394,1285,699],{"class":404},[394,1287,418],{"class":404},[394,1289,1290],{"class":421},"1.0.0",[394,1292,578],{"class":404},[394,1294,709],{"class":404},[394,1296,1297],{"class":396,"line":727},[394,1298,1299],{"class":404},"    },\n",[394,1301,1303],{"class":396,"line":1302},9,[394,1304,1305],{"class":404},"  },\n",[394,1307,1309,1311],{"class":396,"line":1308},10,[394,1310,597],{"class":404},[394,1312,600],{"class":408},[430,1314,1316],{"id":1315},"override-options","Override Options",[315,1318,1319],{},"Pass options directly to override any configuration:",[383,1321,1324],{"className":385,"code":1322,"filename":1323,"language":388,"meta":389,"style":389},"const drain = createSentryDrain({\n  dsn: 'https:\u002F\u002Fkey@o0.ingest.sentry.io\u002F123',\n  tags: { team: 'backend' },\n  timeout: 10000,\n})\n","server\u002Fplugins\u002Fevlog-drain.ts",[391,1325,1326,1342,1358,1382,1395],{"__ignoreMap":389},[394,1327,1328,1331,1334,1336,1338,1340],{"class":396,"line":397},[394,1329,1330],{"class":551},"const",[394,1332,1333],{"class":408}," drain ",[394,1335,475],{"class":404},[394,1337,409],{"class":535},[394,1339,539],{"class":408},[394,1341,691],{"class":404},[394,1343,1344,1347,1349,1351,1354,1356],{"class":396,"line":500},[394,1345,1346],{"class":575},"  dsn",[394,1348,699],{"class":404},[394,1350,418],{"class":404},[394,1352,1353],{"class":421},"https:\u002F\u002Fkey@o0.ingest.sentry.io\u002F123",[394,1355,578],{"class":404},[394,1357,709],{"class":404},[394,1359,1360,1363,1365,1367,1370,1372,1374,1377,1379],{"class":396,"line":519},[394,1361,1362],{"class":575},"  tags",[394,1364,699],{"class":404},[394,1366,405],{"class":404},[394,1368,1369],{"class":575}," team",[394,1371,699],{"class":404},[394,1373,418],{"class":404},[394,1375,1376],{"class":421},"backend",[394,1378,578],{"class":404},[394,1380,1381],{"class":404}," },\n",[394,1383,1384,1387,1389,1393],{"class":396,"line":526},[394,1385,1386],{"class":575},"  timeout",[394,1388,699],{"class":404},[394,1390,1392],{"class":1391},"sbssI"," 10000",[394,1394,709],{"class":404},[394,1396,1397,1399],{"class":396,"line":558},[394,1398,597],{"class":404},[394,1400,600],{"class":408},[430,1402,1404],{"id":1403},"full-configuration-reference","Full Configuration Reference",[1113,1406,1407,1422],{},[1116,1408,1409],{},[1119,1410,1411,1414,1417,1420],{},[1122,1412,1413],{},"Option",[1122,1415,1416],{},"Type",[1122,1418,1419],{},"Default",[1122,1421,1130],{},[1132,1423,1424,1441,1458,1475,1492],{},[1119,1425,1426,1431,1436,1439],{},[1137,1427,1428],{},[391,1429,1430],{},"dsn",[1137,1432,1433],{},[391,1434,1435],{},"string",[1137,1437,1438],{},"-",[1137,1440,1148],{},[1119,1442,1443,1448,1452,1455],{},[1137,1444,1445],{},[391,1446,1447],{},"environment",[1137,1449,1450],{},[391,1451,1435],{},[1137,1453,1454],{},"Event environment",[1137,1456,1457],{},"Environment name",[1119,1459,1460,1465,1469,1472],{},[1137,1461,1462],{},[391,1463,1464],{},"release",[1137,1466,1467],{},[391,1468,1435],{},[1137,1470,1471],{},"Event version",[1137,1473,1474],{},"Release version",[1119,1476,1477,1482,1487,1489],{},[1137,1478,1479],{},[391,1480,1481],{},"tags",[1137,1483,1484],{},[391,1485,1486],{},"Record\u003Cstring, string>",[1137,1488,1438],{},[1137,1490,1491],{},"Additional attributes to attach",[1119,1493,1494,1499,1504,1509],{},[1137,1495,1496],{},[391,1497,1498],{},"timeout",[1137,1500,1501],{},[391,1502,1503],{},"number",[1137,1505,1506],{},[391,1507,1508],{},"5000",[1137,1510,1511],{},"Request timeout in milliseconds",[376,1513,1515],{"id":1514},"log-transformation","Log Transformation",[315,1517,1518,1519,699],{},"evlog wide events are converted to Sentry Logs using ",[391,1520,1521],{},"toSentryLog()",[1523,1524,1525,1544,1562,1579,1585,1599],"ul",{},[345,1526,1527,1530,1531,1534,1535,1534,1538,1534,1541,548],{},[325,1528,1529],{},"Level mapping",": evlog levels map directly (",[391,1532,1533],{},"debug",", ",[391,1536,1537],{},"info",[391,1539,1540],{},"warn",[391,1542,1543],{},"error",[345,1545,1546,1549,1550,1534,1553,1534,1556,1534,1559,548],{},[325,1547,1548],{},"Severity numbers",": Follow the OpenTelemetry spec (",[391,1551,1552],{},"debug=5",[391,1554,1555],{},"info=9",[391,1557,1558],{},"warn=13",[391,1560,1561],{},"error=17",[345,1563,1564,1567,1568,1534,1571,1574,1575,1578],{},[325,1565,1566],{},"Body",": Derived from the event's ",[391,1569,1570],{},"message",[391,1572,1573],{},"action",", or ",[391,1576,1577],{},"path"," fields (first available)",[345,1580,1581,1584],{},[325,1582,1583],{},"Attributes",": All wide event fields are sent as typed attributes (string, integer, double, boolean). Complex objects are serialized to JSON strings.",[345,1586,1587,1590,1591,1594,1595,1598],{},[325,1588,1589],{},"Sentry attributes",": ",[391,1592,1593],{},"sentry.environment"," and ",[391,1596,1597],{},"sentry.release"," are set automatically",[345,1600,1601,1604,1605,1608],{},[325,1602,1603],{},"Trace ID",": Uses ",[391,1606,1607],{},"event.traceId"," if available, otherwise generates a random one",[376,1610,1612],{"id":1611},"querying-logs-in-sentry","Querying Logs in Sentry",[315,1614,1615],{},"evlog sends wide events as structured logs. In the Sentry dashboard:",[1523,1617,1618,1623,1635],{},[345,1619,1620,1622],{},[325,1621,331],{},": View all evlog wide events with full attribute search",[345,1624,1625,1590,1628,1534,1631,1634],{},[325,1626,1627],{},"Filter by attributes",[391,1629,1630],{},"service:my-app",[391,1632,1633],{},"level:error",", or any wide event field",[345,1636,1637,1640,1641,1644],{},[325,1638,1639],{},"Trace correlation",": Logs are linked to traces via ",[391,1642,1643],{},"trace_id"," for cross-referencing",[1646,1647,1648],"callout",{"color":1537,"icon":13},"Sentry Structured Logs support high-cardinality attributes, making them a great fit for evlog's wide events. Every field in your wide event becomes a searchable attribute in Sentry.",[376,1650,1652],{"id":1651},"troubleshooting","Troubleshooting",[430,1654,1656],{"id":1655},"missing-dsn-error","Missing DSN error",[383,1658,1664],{"className":1659,"code":1661,"filename":1662,"language":1663,"meta":389},[1660],"language-text","[evlog\u002Fsentry] Missing DSN. Set SENTRY_DSN env var or pass to createSentryDrain()\n","Console","text",[391,1665,1661],{"__ignoreMap":389},[315,1667,1668],{},"Make sure your environment variable is set and the server was restarted after adding it.",[430,1670,1672],{"id":1671},"invalid-dsn","Invalid DSN",[315,1674,1675],{},"If the DSN is malformed (missing public key or project ID), the adapter will throw an error. Verify your DSN format:",[383,1677,1681],{"className":1678,"code":1679,"filename":1680,"language":1663,"meta":389},[1660],"https:\u002F\u002F\u003Cpublic-key>@\u003Chost>\u002F\u003Cproject-id>\n","Sentry DSN format",[391,1682,1679],{"__ignoreMap":389},[430,1684,1686],{"id":1685},"_401-unauthorized","401 Unauthorized",[315,1688,1689,1690,564],{},"Your DSN may be revoked or invalid. Generate a new DSN in ",[325,1691,1692],{},"Settings > Projects > Client Keys (DSN)",[376,1694,1696],{"id":1695},"direct-api-usage","Direct API Usage",[315,1698,1699],{},"For advanced use cases, you can use the lower-level functions:",[383,1701,1704],{"className":385,"code":1702,"filename":1703,"language":388,"meta":389,"style":389},"import { sendToSentry, sendBatchToSentry } from 'evlog\u002Fsentry'\n\n\u002F\u002F Send a single event as a Sentry log\nawait sendToSentry(event, {\n  dsn: process.env.SENTRY_DSN!,\n})\n\n\u002F\u002F Send multiple events in one request\nawait sendBatchToSentry(events, {\n  dsn: process.env.SENTRY_DSN!,\n})\n","server\u002Futils\u002Fsentry.ts",[391,1705,1706,1730,1734,1739,1752,1773,1779,1783,1788,1801,1819],{"__ignoreMap":389},[394,1707,1708,1710,1712,1715,1717,1720,1722,1724,1726,1728],{"class":396,"line":397},[394,1709,401],{"class":400},[394,1711,405],{"class":404},[394,1713,1714],{"class":408}," sendToSentry",[394,1716,586],{"class":404},[394,1718,1719],{"class":408}," sendBatchToSentry",[394,1721,412],{"class":404},[394,1723,415],{"class":400},[394,1725,418],{"class":404},[394,1727,422],{"class":421},[394,1729,425],{"class":404},[394,1731,1732],{"class":396,"line":500},[394,1733,523],{"emptyLinePlaceholder":522},[394,1735,1736],{"class":396,"line":519},[394,1737,1738],{"class":496},"\u002F\u002F Send a single event as a Sentry log\n",[394,1740,1741,1743,1745,1748,1750],{"class":396,"line":526},[394,1742,879],{"class":400},[394,1744,1714],{"class":535},[394,1746,1747],{"class":408},"(event",[394,1749,586],{"class":404},[394,1751,555],{"class":404},[394,1753,1754,1756,1758,1761,1763,1766,1768,1770],{"class":396,"line":558},[394,1755,1346],{"class":575},[394,1757,699],{"class":404},[394,1759,1760],{"class":408}," process",[394,1762,564],{"class":404},[394,1764,1765],{"class":408},"env",[394,1767,564],{"class":404},[394,1769,472],{"class":408},[394,1771,1772],{"class":404},"!,\n",[394,1774,1775,1777],{"class":396,"line":594},[394,1776,597],{"class":404},[394,1778,600],{"class":408},[394,1780,1781],{"class":396,"line":712},[394,1782,523],{"emptyLinePlaceholder":522},[394,1784,1785],{"class":396,"line":727},[394,1786,1787],{"class":496},"\u002F\u002F Send multiple events in one request\n",[394,1789,1790,1792,1794,1797,1799],{"class":396,"line":1302},[394,1791,879],{"class":400},[394,1793,1719],{"class":535},[394,1795,1796],{"class":408},"(events",[394,1798,586],{"class":404},[394,1800,555],{"class":404},[394,1802,1803,1805,1807,1809,1811,1813,1815,1817],{"class":396,"line":1308},[394,1804,1346],{"class":575},[394,1806,699],{"class":404},[394,1808,1760],{"class":408},[394,1810,564],{"class":404},[394,1812,1765],{"class":408},[394,1814,564],{"class":404},[394,1816,472],{"class":408},[394,1818,1772],{"class":404},[394,1820,1822,1824],{"class":396,"line":1821},11,[394,1823,597],{"class":404},[394,1825,600],{"class":408},[376,1827,1829],{"id":1828},"next-steps","Next Steps",[1523,1831,1832,1838,1844,1850],{},[345,1833,1834,1837],{},[318,1835,1836],{"href":224},"Axiom Adapter"," - Send logs to Axiom for querying and dashboards",[345,1839,1840,1843],{},[318,1841,1842],{"href":229},"OTLP Adapter"," - Send logs via OpenTelemetry Protocol",[345,1845,1846,1849],{},[318,1847,1848],{"href":234},"PostHog Adapter"," - Send logs to PostHog",[345,1851,1852,1854],{},[318,1853,288],{"href":289}," - Build your own adapter",[1856,1857,1858],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":389,"searchDepth":500,"depth":500,"links":1860},[1861,1862,1867,1873,1874,1875,1880,1881],{"id":378,"depth":500,"text":15},{"id":428,"depth":500,"text":20,"children":1863},[1864,1865,1866],{"id":432,"depth":519,"text":433},{"id":458,"depth":519,"text":459},{"id":481,"depth":519,"text":482},{"id":1070,"depth":500,"text":91,"children":1868},[1869,1870,1871,1872],{"id":1110,"depth":519,"text":1111},{"id":1181,"depth":519,"text":1182},{"id":1315,"depth":519,"text":1316},{"id":1403,"depth":519,"text":1404},{"id":1514,"depth":500,"text":1515},{"id":1611,"depth":500,"text":1612},{"id":1651,"depth":500,"text":1652,"children":1876},[1877,1878,1879],{"id":1655,"depth":519,"text":1656},{"id":1671,"depth":519,"text":1672},{"id":1685,"depth":519,"text":1686},{"id":1695,"depth":500,"text":1696},{"id":1828,"depth":500,"text":1829},"Send structured logs to Sentry Logs for high-cardinality querying and debugging. Zero-config setup with environment variables.","md",[1885,1891],{"label":1886,"icon":1887,"to":320,"target":1888,"color":1889,"variant":1890},"Sentry Dashboard","i-lucide-external-link","_blank","neutral","subtle",{"label":1842,"icon":231,"to":229,"color":1889,"variant":1890},{},{"title":238,"icon":241},{"title":310,"description":1882},"b8wJXLl61HaMM4ll4tH1NCVkRXui9gKGcvmOo8Sudnk",[1897,1899],{"title":233,"path":234,"stem":235,"description":1898,"icon":236,"children":-1},"Send wide events to PostHog Logs via OTLP for structured log querying, debugging, and observability in your PostHog dashboard.",{"title":243,"path":244,"stem":245,"description":1900,"icon":246,"children":-1},"Send wide events to Better Stack (formerly Logtail) for log management, alerting, and dashboards. Zero-config setup with environment variables.",1777667169993]