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