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