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