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