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