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