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