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