[{"data":1,"prerenderedAt":2727},["ShallowReactive",2],{"navigation_docs":3,"-integrate-adapters-cloud-posthog":451,"-integrate-adapters-cloud-posthog-surround":2722},[4,30,80,245,365,420],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"Integrate","\u002Fintegrate","3.integrate",[85,89,157],{"title":36,"path":86,"stem":87,"icon":88},"\u002Fintegrate\u002Foverview","3.integrate\u002F0.overview","i-lucide-plug",{"title":90,"path":91,"stem":92,"children":93,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","3.integrate\u002Fadapters",[94,97,137],{"title":36,"path":95,"stem":96,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","3.integrate\u002Fadapters\u002F01.overview",{"title":98,"path":99,"stem":100,"children":101,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","3.integrate\u002Fadapters\u002Fcloud",[102,107,112,117,122,127,132],{"title":103,"path":104,"stem":105,"icon":106},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","3.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":108,"path":109,"stem":110,"icon":111},"OTLP","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fotlp","3.integrate\u002Fadapters\u002Fcloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":113,"path":114,"stem":115,"icon":116},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","3.integrate\u002Fadapters\u002Fcloud\u002F03.posthog","i-simple-icons-posthog",{"title":118,"path":119,"stem":120,"icon":121},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","3.integrate\u002Fadapters\u002Fcloud\u002F04.sentry","i-simple-icons-sentry",{"title":123,"path":124,"stem":125,"icon":126},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","3.integrate\u002Fadapters\u002Fcloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":128,"path":129,"stem":130,"icon":131},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","3.integrate\u002Fadapters\u002Fcloud\u002F06.datadog","i-simple-icons-datadog",{"title":133,"path":134,"stem":135,"icon":136},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fhyperdx","3.integrate\u002Fadapters\u002Fcloud\u002F07.hyperdx","i-custom-hyperdx",{"title":138,"path":139,"stem":140,"children":141,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","3.integrate\u002Fadapters\u002Fself-hosted",[142,147,152],{"title":143,"path":144,"stem":145,"icon":146},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","3.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":148,"path":149,"stem":150,"icon":151},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","3.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":153,"path":154,"stem":155,"icon":156},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","3.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":158,"path":159,"stem":160,"children":161,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","3.integrate\u002Fframeworks",[162,166,171,176,181,186,191,196,201,206,211,216,221,226,230,235,240],{"title":36,"path":163,"stem":164,"icon":165},"\u002Fintegrate\u002Fframeworks\u002Foverview","3.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":167,"path":168,"stem":169,"icon":170},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","3.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":172,"path":173,"stem":174,"icon":175},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","3.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":177,"path":178,"stem":179,"icon":180},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","3.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":182,"path":183,"stem":184,"icon":185},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","3.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":187,"path":188,"stem":189,"icon":190},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","3.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":192,"path":193,"stem":194,"icon":195},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","3.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":197,"path":198,"stem":199,"icon":200},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","3.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":202,"path":203,"stem":204,"icon":205},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","3.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":207,"path":208,"stem":209,"icon":210},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","3.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":212,"path":213,"stem":214,"icon":215},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","3.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":217,"path":218,"stem":219,"icon":220},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","3.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":222,"path":223,"stem":224,"icon":225},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","3.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":227,"path":228,"stem":229,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","3.integrate\u002Fframeworks\u002F13.standalone",{"title":231,"path":232,"stem":233,"icon":234},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","3.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":236,"path":237,"stem":238,"icon":239},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","3.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":241,"path":242,"stem":243,"icon":244},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","3.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":246,"path":247,"stem":248,"children":249,"page":29},"Use Cases","\u002Fuse-cases","4.use-cases",[250,254,259,288,316,348,353,358],{"title":36,"path":251,"stem":252,"icon":253},"\u002Fuse-cases\u002Foverview","4.use-cases\u002F0.overview","i-lucide-list-checks",{"title":255,"path":256,"stem":257,"icon":258},"Client Logging","\u002Fuse-cases\u002Fclient-logging","4.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":260,"icon":261,"path":262,"stem":263,"children":264,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","4.use-cases\u002F2.ai-sdk",[265,268,273,278,283],{"title":36,"path":266,"stem":267,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","4.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":269,"path":270,"stem":271,"icon":272},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","4.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":274,"path":275,"stem":276,"icon":277},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","4.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":279,"path":280,"stem":281,"icon":282},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","4.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":284,"path":285,"stem":286,"icon":287},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","4.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":289,"icon":290,"path":291,"stem":292,"children":293,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","4.use-cases\u002F3.better-auth",[294,297,302,307,311],{"title":36,"path":295,"stem":296,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","4.use-cases\u002F3.better-auth\u002F01.overview",{"title":298,"path":299,"stem":300,"icon":301},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","4.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":303,"path":304,"stem":305,"icon":306},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","4.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":308,"path":309,"stem":310,"icon":258},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","4.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":312,"path":313,"stem":314,"icon":315},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","4.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":317,"icon":318,"path":319,"stem":320,"children":321,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","4.use-cases\u002F4.audit",[322,325,330,335,340,344],{"title":36,"path":323,"stem":324,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","4.use-cases\u002F4.audit\u002F01.overview",{"title":326,"path":327,"stem":328,"icon":329},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","4.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":331,"path":332,"stem":333,"icon":334},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","4.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":336,"path":337,"stem":338,"icon":339},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","4.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":341,"path":342,"stem":343,"icon":318},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","4.use-cases\u002F4.audit\u002F05.compliance",{"title":345,"path":346,"stem":347,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","4.use-cases\u002F4.audit\u002F06.recipes",{"title":349,"path":350,"stem":351,"icon":352},"Enrichers","\u002Fuse-cases\u002Fenrichers","4.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":354,"path":355,"stem":356,"icon":357},"eve","\u002Fuse-cases\u002Feve","4.use-cases\u002F5.eve","i-custom-eve",{"title":284,"path":359,"stem":360,"children":361,"page":29},"\u002Fuse-cases\u002Ftelemetry","4.use-cases\u002F6.telemetry",[362],{"title":284,"path":363,"stem":364,"icon":315},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","4.use-cases\u002F6.telemetry\u002F01.overview",{"title":366,"path":367,"stem":368,"children":369,"page":29},"Extend","\u002Fextend","5.extend",[370,374,379,384,389,393,397,401,405,410,415],{"title":36,"path":371,"stem":372,"icon":373},"\u002Fextend\u002Foverview","5.extend\u002F0.overview","i-lucide-blocks",{"title":375,"path":376,"stem":377,"icon":378},"Stream","\u002Fextend\u002Fstream","5.extend\u002F1.stream","i-lucide-radio-tower",{"title":380,"path":381,"stem":382,"icon":383},"Custom framework","\u002Fextend\u002Fcustom-framework","5.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":385,"path":386,"stem":387,"icon":388},"FS reader","\u002Fextend\u002Ffs-reader","5.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":345,"path":390,"stem":391,"icon":392},"\u002Fextend\u002Fconsumer-recipes","5.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":394,"path":395,"stem":396,"icon":373},"Plugins","\u002Fextend\u002Fplugins","5.extend\u002F4.plugins",{"title":398,"path":399,"stem":400,"icon":352},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","5.extend\u002F5.custom-enrichers",{"title":402,"path":403,"stem":404,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","5.extend\u002F6.tail-sampling",{"title":406,"path":407,"stem":408,"icon":409},"Identity headers","\u002Fextend\u002Fidentity-headers","5.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":411,"path":412,"stem":413,"icon":414},"Custom drains","\u002Fextend\u002Fcustom-drains","5.extend\u002F8.custom-drains","i-lucide-share-2",{"title":416,"path":417,"stem":418,"icon":419},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","5.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":421,"path":422,"stem":423,"children":424,"page":29},"Reference","\u002Freference","6.reference",[425,430,433,438,442,447],{"title":426,"path":427,"stem":428,"icon":429},"Configuration","\u002Freference\u002Fconfiguration","6.reference\u002F1.configuration","i-lucide-settings",{"title":312,"path":431,"stem":432,"icon":315},"\u002Freference\u002Fperformance","6.reference\u002F2.performance",{"title":434,"path":435,"stem":436,"icon":437},"Vite Plugin","\u002Freference\u002Fvite-plugin","6.reference\u002F3.vite-plugin","i-custom-vite",{"title":439,"path":440,"stem":441,"icon":318},"Best Practices","\u002Freference\u002Fbest-practices","6.reference\u002F4.best-practices",{"title":443,"path":444,"stem":445,"icon":446},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","6.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":448,"path":449,"stem":450,"icon":352},"Agent Skills","\u002Freference\u002Fagent-skills","6.reference\u002F6.agent-skills",{"id":452,"title":453,"body":454,"description":2708,"extension":2709,"links":2710,"meta":2718,"navigation":2719,"path":114,"seo":2720,"stem":115,"__hash__":2721},"docs\u002F3.integrate\u002Fadapters\u002Fcloud\u002F03.posthog.md","PostHog Adapter",{"type":455,"value":456,"toc":2678},"minimark",[457,473,518,522,525,569,572,577,608,612,631,635,1213,1216,1219,1222,1252,1256,1297,1301,1308,1389,1393,1396,1453,1457,1533,1537,1547,1579,1583,1589,1629,1657,1661,1668,1681,1685,1694,1789,1800,1808,1824,1828,1932,1936,1939,2028,2032,2038,2064,2068,2143,2146,2286,2290,2294,2303,2306,2310,2313,2333,2337,2343,2356,2360,2363,2482,2485,2645,2649,2674],[458,459,460,466,467,472],"p",{},[461,462,113],"a",{"href":463,"rel":464},"https:\u002F\u002Fposthog.com",[465],"nofollow"," is an open-source product analytics platform. The evlog PostHog adapter sends your wide events to ",[461,468,471],{"href":469,"rel":470},"https:\u002F\u002Fposthog.com\u002Fdocs\u002Flogs",[465],"PostHog Logs"," via the standard OTLP format, giving you a dedicated log viewer with filtering, search, and tail mode using your existing PostHog API key.",[474,475,478,481,506],"prompt",{":actions":476,"description":477,"icon":116},"[\"copy\",\"cursor\",\"windsurf\"]","Add the PostHog drain adapter",[458,479,480],{},"Add the PostHog drain adapter to send evlog wide events to PostHog Logs.",[482,483,484,488,491,494,497,500,503],"ol",{},[485,486,487],"li",{},"Identify which framework I'm using and follow its evlog integration pattern",[485,489,490],{},"Install evlog if not already installed",[485,492,493],{},"Import createPostHogDrain from 'evlog\u002Fposthog'",[485,495,496],{},"Wire createPostHogDrain() into my framework's drain configuration",[485,498,499],{},"Set POSTHOG_API_KEY environment variable",[485,501,502],{},"Optionally set POSTHOG_HOST for EU or self-hosted instances",[485,504,505],{},"Test by triggering a request and checking PostHog > Logs",[458,507,508,509,513,514],{},"Adapter docs: ",[461,510,511],{"href":511,"rel":512},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog",[465],"\nFramework setup: ",[461,515,516],{"href":516,"rel":517},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fframeworks\u002Foverview",[465],[519,520,20],"h2",{"id":521},"installation",[458,523,524],{},"The PostHog adapter comes bundled with evlog:",[526,527,533],"pre",{"className":528,"code":529,"filename":530,"language":531,"meta":532,"style":532},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createPostHogDrain } from 'evlog\u002Fposthog'\n","src\u002Findex.ts","typescript","",[534,535,536],"code",{"__ignoreMap":532},[537,538,541,545,549,553,556,559,562,566],"span",{"class":539,"line":540},"line",1,[537,542,544],{"class":543},"s7zQu","import",[537,546,548],{"class":547},"sMK4o"," {",[537,550,552],{"class":551},"sTEyZ"," createPostHogDrain",[537,554,555],{"class":547}," }",[537,557,558],{"class":543}," from",[537,560,561],{"class":547}," '",[537,563,565],{"class":564},"sfazB","evlog\u002Fposthog",[537,567,568],{"class":547},"'\n",[519,570,25],{"id":571},"quick-start",[573,574,576],"h3",{"id":575},"_1-get-your-posthog-project-api-key","1. Get your PostHog project API key",[482,578,579,587,601],{},[485,580,581,582],{},"Log in to your ",[461,583,586],{"href":584,"rel":585},"https:\u002F\u002Fapp.posthog.com",[465],"PostHog dashboard",[485,588,589,590,594,595,594,598],{},"Go to ",[591,592,593],"strong",{},"Settings"," > ",[591,596,597],{},"Project",[591,599,600],{},"Project API Key",[485,602,603,604,607],{},"Copy the key (starts with ",[534,605,606],{},"phc_",")",[573,609,611],{"id":610},"_2-set-environment-variables","2. Set environment variables",[526,613,618],{"className":614,"code":615,"filename":616,"language":617,"meta":532,"style":532},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POSTHOG_API_KEY=phc_your-project-api-key\n",".env","bash",[534,619,620],{"__ignoreMap":532},[537,621,622,625,628],{"class":539,"line":540},[537,623,624],{"class":551},"POSTHOG_API_KEY",[537,626,627],{"class":547},"=",[537,629,630],{"class":564},"phc_your-project-api-key\n",[573,632,634],{"id":633},"_3-wire-the-drain-to-your-framework","3. Wire the drain to your framework",[636,637,638,752,883,945,999,1058,1112,1165],"code-group",{},[526,639,642],{"className":528,"code":640,"filename":641,"language":531,"meta":532,"style":532},"\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\nimport { createPostHogDrain } from 'evlog\u002Fposthog'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createPostHogDrain())\n})\n","Nuxt \u002F Nitro",[534,643,644,650,669,676,707,743],{"__ignoreMap":532},[537,645,646],{"class":539,"line":540},[537,647,649],{"class":648},"sHwdD","\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\n",[537,651,653,655,657,659,661,663,665,667],{"class":539,"line":652},2,[537,654,544],{"class":543},[537,656,548],{"class":547},[537,658,552],{"class":551},[537,660,555],{"class":547},[537,662,558],{"class":543},[537,664,561],{"class":547},[537,666,565],{"class":564},[537,668,568],{"class":547},[537,670,672],{"class":539,"line":671},3,[537,673,675],{"emptyLinePlaceholder":674},true,"\n",[537,677,679,682,685,689,692,694,698,700,704],{"class":539,"line":678},4,[537,680,681],{"class":543},"export",[537,683,684],{"class":543}," default",[537,686,688],{"class":687},"s2Zo4"," defineNitroPlugin",[537,690,691],{"class":551},"(",[537,693,691],{"class":547},[537,695,697],{"class":696},"sHdIc","nitroApp",[537,699,607],{"class":547},[537,701,703],{"class":702},"spNyl"," =>",[537,705,706],{"class":547}," {\n",[537,708,710,713,716,719,721,724,727,730,733,735,738,740],{"class":539,"line":709},5,[537,711,712],{"class":551},"  nitroApp",[537,714,715],{"class":547},".",[537,717,718],{"class":551},"hooks",[537,720,715],{"class":547},[537,722,723],{"class":687},"hook",[537,725,691],{"class":726},"swJcz",[537,728,729],{"class":547},"'",[537,731,732],{"class":564},"evlog:drain",[537,734,729],{"class":547},[537,736,737],{"class":547},",",[537,739,552],{"class":687},[537,741,742],{"class":726},"())\n",[537,744,746,749],{"class":539,"line":745},6,[537,747,748],{"class":547},"}",[537,750,751],{"class":551},")\n",[526,753,755],{"className":528,"code":754,"filename":172,"language":531,"meta":532,"style":532},"\u002F\u002F lib\u002Fevlog.ts\nimport { createEvlog } from 'evlog\u002Fnext'\nimport { createPostHogDrain } from 'evlog\u002Fposthog'\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  drain: createPostHogDrain(),\n})\n",[534,756,757,762,782,800,804,843,861,876],{"__ignoreMap":532},[537,758,759],{"class":539,"line":540},[537,760,761],{"class":648},"\u002F\u002F lib\u002Fevlog.ts\n",[537,763,764,766,768,771,773,775,777,780],{"class":539,"line":652},[537,765,544],{"class":543},[537,767,548],{"class":547},[537,769,770],{"class":551}," createEvlog",[537,772,555],{"class":547},[537,774,558],{"class":543},[537,776,561],{"class":547},[537,778,779],{"class":564},"evlog\u002Fnext",[537,781,568],{"class":547},[537,783,784,786,788,790,792,794,796,798],{"class":539,"line":671},[537,785,544],{"class":543},[537,787,548],{"class":547},[537,789,552],{"class":551},[537,791,555],{"class":547},[537,793,558],{"class":543},[537,795,561],{"class":547},[537,797,565],{"class":564},[537,799,568],{"class":547},[537,801,802],{"class":539,"line":678},[537,803,675],{"emptyLinePlaceholder":674},[537,805,806,808,811,813,816,818,821,823,826,828,831,833,836,838,840],{"class":539,"line":709},[537,807,681],{"class":543},[537,809,810],{"class":702}," const",[537,812,548],{"class":547},[537,814,815],{"class":551}," withEvlog",[537,817,737],{"class":547},[537,819,820],{"class":551}," useLogger",[537,822,737],{"class":547},[537,824,825],{"class":551}," log",[537,827,737],{"class":547},[537,829,830],{"class":551}," createError ",[537,832,748],{"class":547},[537,834,835],{"class":547}," =",[537,837,770],{"class":687},[537,839,691],{"class":551},[537,841,842],{"class":547},"{\n",[537,844,845,848,851,853,856,858],{"class":539,"line":745},[537,846,847],{"class":726},"  service",[537,849,850],{"class":547},":",[537,852,561],{"class":547},[537,854,855],{"class":564},"my-app",[537,857,729],{"class":547},[537,859,860],{"class":547},",\n",[537,862,864,867,869,871,874],{"class":539,"line":863},7,[537,865,866],{"class":726},"  drain",[537,868,850],{"class":547},[537,870,552],{"class":687},[537,872,873],{"class":551},"()",[537,875,860],{"class":547},[537,877,879,881],{"class":539,"line":878},8,[537,880,748],{"class":547},[537,882,751],{"class":551},[526,884,886],{"className":528,"code":885,"filename":202,"language":531,"meta":532,"style":532},"import { createPostHogDrain } from 'evlog\u002Fposthog'\n\napp.use(evlog({ drain: createPostHogDrain() }))\n",[534,887,888,906,910],{"__ignoreMap":532},[537,889,890,892,894,896,898,900,902,904],{"class":539,"line":540},[537,891,544],{"class":543},[537,893,548],{"class":547},[537,895,552],{"class":551},[537,897,555],{"class":547},[537,899,558],{"class":543},[537,901,561],{"class":547},[537,903,565],{"class":564},[537,905,568],{"class":547},[537,907,908],{"class":539,"line":652},[537,909,675],{"emptyLinePlaceholder":674},[537,911,912,915,917,920,922,925,927,930,933,935,937,940,942],{"class":539,"line":671},[537,913,914],{"class":551},"app",[537,916,715],{"class":547},[537,918,919],{"class":687},"use",[537,921,691],{"class":551},[537,923,924],{"class":687},"evlog",[537,926,691],{"class":551},[537,928,929],{"class":547},"{",[537,931,932],{"class":726}," drain",[537,934,850],{"class":547},[537,936,552],{"class":687},[537,938,939],{"class":551},"() ",[537,941,748],{"class":547},[537,943,944],{"class":551},"))\n",[526,946,947],{"className":528,"code":885,"filename":197,"language":531,"meta":532,"style":532},[534,948,949,967,971],{"__ignoreMap":532},[537,950,951,953,955,957,959,961,963,965],{"class":539,"line":540},[537,952,544],{"class":543},[537,954,548],{"class":547},[537,956,552],{"class":551},[537,958,555],{"class":547},[537,960,558],{"class":543},[537,962,561],{"class":547},[537,964,565],{"class":564},[537,966,568],{"class":547},[537,968,969],{"class":539,"line":652},[537,970,675],{"emptyLinePlaceholder":674},[537,972,973,975,977,979,981,983,985,987,989,991,993,995,997],{"class":539,"line":671},[537,974,914],{"class":551},[537,976,715],{"class":547},[537,978,919],{"class":687},[537,980,691],{"class":551},[537,982,924],{"class":687},[537,984,691],{"class":551},[537,986,929],{"class":547},[537,988,932],{"class":726},[537,990,850],{"class":547},[537,992,552],{"class":687},[537,994,939],{"class":551},[537,996,748],{"class":547},[537,998,944],{"class":551},[526,1000,1002],{"className":528,"code":1001,"filename":207,"language":531,"meta":532,"style":532},"import { createPostHogDrain } from 'evlog\u002Fposthog'\n\nawait app.register(evlog, { drain: createPostHogDrain() })\n",[534,1003,1004,1022,1026],{"__ignoreMap":532},[537,1005,1006,1008,1010,1012,1014,1016,1018,1020],{"class":539,"line":540},[537,1007,544],{"class":543},[537,1009,548],{"class":547},[537,1011,552],{"class":551},[537,1013,555],{"class":547},[537,1015,558],{"class":543},[537,1017,561],{"class":547},[537,1019,565],{"class":564},[537,1021,568],{"class":547},[537,1023,1024],{"class":539,"line":652},[537,1025,675],{"emptyLinePlaceholder":674},[537,1027,1028,1031,1034,1036,1039,1042,1044,1046,1048,1050,1052,1054,1056],{"class":539,"line":671},[537,1029,1030],{"class":543},"await",[537,1032,1033],{"class":551}," app",[537,1035,715],{"class":547},[537,1037,1038],{"class":687},"register",[537,1040,1041],{"class":551},"(evlog",[537,1043,737],{"class":547},[537,1045,548],{"class":547},[537,1047,932],{"class":726},[537,1049,850],{"class":547},[537,1051,552],{"class":687},[537,1053,939],{"class":551},[537,1055,748],{"class":547},[537,1057,751],{"class":551},[526,1059,1060],{"className":528,"code":885,"filename":212,"language":531,"meta":532,"style":532},[534,1061,1062,1080,1084],{"__ignoreMap":532},[537,1063,1064,1066,1068,1070,1072,1074,1076,1078],{"class":539,"line":540},[537,1065,544],{"class":543},[537,1067,548],{"class":547},[537,1069,552],{"class":551},[537,1071,555],{"class":547},[537,1073,558],{"class":543},[537,1075,561],{"class":547},[537,1077,565],{"class":564},[537,1079,568],{"class":547},[537,1081,1082],{"class":539,"line":652},[537,1083,675],{"emptyLinePlaceholder":674},[537,1085,1086,1088,1090,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110],{"class":539,"line":671},[537,1087,914],{"class":551},[537,1089,715],{"class":547},[537,1091,919],{"class":687},[537,1093,691],{"class":551},[537,1095,924],{"class":687},[537,1097,691],{"class":551},[537,1099,929],{"class":547},[537,1101,932],{"class":726},[537,1103,850],{"class":547},[537,1105,552],{"class":687},[537,1107,939],{"class":551},[537,1109,748],{"class":547},[537,1111,944],{"class":551},[526,1113,1115],{"className":528,"code":1114,"filename":192,"language":531,"meta":532,"style":532},"import { createPostHogDrain } from 'evlog\u002Fposthog'\n\nEvlogModule.forRoot({ drain: createPostHogDrain() })\n",[534,1116,1117,1135,1139],{"__ignoreMap":532},[537,1118,1119,1121,1123,1125,1127,1129,1131,1133],{"class":539,"line":540},[537,1120,544],{"class":543},[537,1122,548],{"class":547},[537,1124,552],{"class":551},[537,1126,555],{"class":547},[537,1128,558],{"class":543},[537,1130,561],{"class":547},[537,1132,565],{"class":564},[537,1134,568],{"class":547},[537,1136,1137],{"class":539,"line":652},[537,1138,675],{"emptyLinePlaceholder":674},[537,1140,1141,1144,1146,1149,1151,1153,1155,1157,1159,1161,1163],{"class":539,"line":671},[537,1142,1143],{"class":551},"EvlogModule",[537,1145,715],{"class":547},[537,1147,1148],{"class":687},"forRoot",[537,1150,691],{"class":551},[537,1152,929],{"class":547},[537,1154,932],{"class":726},[537,1156,850],{"class":547},[537,1158,552],{"class":687},[537,1160,939],{"class":551},[537,1162,748],{"class":547},[537,1164,751],{"class":551},[526,1166,1168],{"className":528,"code":1167,"filename":227,"language":531,"meta":532,"style":532},"import { createPostHogDrain } from 'evlog\u002Fposthog'\n\ninitLogger({ drain: createPostHogDrain() })\n",[534,1169,1170,1188,1192],{"__ignoreMap":532},[537,1171,1172,1174,1176,1178,1180,1182,1184,1186],{"class":539,"line":540},[537,1173,544],{"class":543},[537,1175,548],{"class":547},[537,1177,552],{"class":551},[537,1179,555],{"class":547},[537,1181,558],{"class":543},[537,1183,561],{"class":547},[537,1185,565],{"class":564},[537,1187,568],{"class":547},[537,1189,1190],{"class":539,"line":652},[537,1191,675],{"emptyLinePlaceholder":674},[537,1193,1194,1197,1199,1201,1203,1205,1207,1209,1211],{"class":539,"line":671},[537,1195,1196],{"class":687},"initLogger",[537,1198,691],{"class":551},[537,1200,929],{"class":547},[537,1202,932],{"class":726},[537,1204,850],{"class":547},[537,1206,552],{"class":687},[537,1208,939],{"class":551},[537,1210,748],{"class":547},[537,1212,751],{"class":551},[458,1214,1215],{},"That's it! Your wide events will now appear in PostHog Logs with full OTLP structure including severity levels, trace context, and structured attributes.",[519,1217,426],{"id":1218},"configuration",[458,1220,1221],{},"The adapter reads configuration from multiple sources (highest priority first):",[482,1223,1224,1233,1243],{},[485,1225,1226,1229,1230],{},[591,1227,1228],{},"Overrides"," passed to ",[534,1231,1232],{},"createPostHogDrain()",[485,1234,1235,1238,1239,1242],{},[591,1236,1237],{},"Runtime config"," at ",[534,1240,1241],{},"runtimeConfig.posthog"," (Nuxt\u002FNitro only)",[485,1244,1245,1248,1249,607],{},[591,1246,1247],{},"Environment variables"," (",[534,1250,1251],{},"POSTHOG_*",[573,1253,1255],{"id":1254},"environment-variables","Environment Variables",[1257,1258,1259,1272],"table",{},[1260,1261,1262],"thead",{},[1263,1264,1265,1269],"tr",{},[1266,1267,1268],"th",{},"Variable",[1266,1270,1271],{},"Description",[1273,1274,1275,1287],"tbody",{},[1263,1276,1277,1282],{},[1278,1279,1280],"td",{},[534,1281,624],{},[1278,1283,1284,1285,607],{},"Project API key (starts with ",[534,1286,606],{},[1263,1288,1289,1294],{},[1278,1290,1291],{},[534,1292,1293],{},"POSTHOG_HOST",[1278,1295,1296],{},"PostHog host URL (for EU or self-hosted)",[573,1298,1300],{"id":1299},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[458,1302,1303,1304,1307],{},"Configure via ",[534,1305,1306],{},"nuxt.config.ts"," for type-safe configuration:",[526,1309,1311],{"className":528,"code":1310,"filename":1306,"language":531,"meta":532,"style":532},"export default defineNuxtConfig({\n  runtimeConfig: {\n    posthog: {\n      apiKey: '', \u002F\u002F Set via POSTHOG_API_KEY\n      host: '', \u002F\u002F Set via POSTHOG_HOST\n    },\n  },\n})\n",[534,1312,1313,1326,1335,1344,1359,1373,1378,1383],{"__ignoreMap":532},[537,1314,1315,1317,1319,1322,1324],{"class":539,"line":540},[537,1316,681],{"class":543},[537,1318,684],{"class":543},[537,1320,1321],{"class":687}," defineNuxtConfig",[537,1323,691],{"class":551},[537,1325,842],{"class":547},[537,1327,1328,1331,1333],{"class":539,"line":652},[537,1329,1330],{"class":726},"  runtimeConfig",[537,1332,850],{"class":547},[537,1334,706],{"class":547},[537,1336,1337,1340,1342],{"class":539,"line":671},[537,1338,1339],{"class":726},"    posthog",[537,1341,850],{"class":547},[537,1343,706],{"class":547},[537,1345,1346,1349,1351,1354,1356],{"class":539,"line":678},[537,1347,1348],{"class":726},"      apiKey",[537,1350,850],{"class":547},[537,1352,1353],{"class":547}," ''",[537,1355,737],{"class":547},[537,1357,1358],{"class":648}," \u002F\u002F Set via POSTHOG_API_KEY\n",[537,1360,1361,1364,1366,1368,1370],{"class":539,"line":709},[537,1362,1363],{"class":726},"      host",[537,1365,850],{"class":547},[537,1367,1353],{"class":547},[537,1369,737],{"class":547},[537,1371,1372],{"class":648}," \u002F\u002F Set via POSTHOG_HOST\n",[537,1374,1375],{"class":539,"line":745},[537,1376,1377],{"class":547},"    },\n",[537,1379,1380],{"class":539,"line":863},[537,1381,1382],{"class":547},"  },\n",[537,1384,1385,1387],{"class":539,"line":878},[537,1386,748],{"class":547},[537,1388,751],{"class":551},[573,1390,1392],{"id":1391},"override-options","Override Options",[458,1394,1395],{},"Pass options directly to override any configuration:",[526,1397,1400],{"className":528,"code":1398,"filename":1399,"language":531,"meta":532,"style":532},"const drain = createPostHogDrain({\n  host: 'https:\u002F\u002Feu.i.posthog.com',\n  timeout: 10000,\n})\n","server\u002Fplugins\u002Fevlog-drain.ts",[534,1401,1402,1418,1434,1447],{"__ignoreMap":532},[537,1403,1404,1407,1410,1412,1414,1416],{"class":539,"line":540},[537,1405,1406],{"class":702},"const",[537,1408,1409],{"class":551}," drain ",[537,1411,627],{"class":547},[537,1413,552],{"class":687},[537,1415,691],{"class":551},[537,1417,842],{"class":547},[537,1419,1420,1423,1425,1427,1430,1432],{"class":539,"line":652},[537,1421,1422],{"class":726},"  host",[537,1424,850],{"class":547},[537,1426,561],{"class":547},[537,1428,1429],{"class":564},"https:\u002F\u002Feu.i.posthog.com",[537,1431,729],{"class":547},[537,1433,860],{"class":547},[537,1435,1436,1439,1441,1445],{"class":539,"line":671},[537,1437,1438],{"class":726},"  timeout",[537,1440,850],{"class":547},[537,1442,1444],{"class":1443},"sbssI"," 10000",[537,1446,860],{"class":547},[537,1448,1449,1451],{"class":539,"line":678},[537,1450,748],{"class":547},[537,1452,751],{"class":551},[573,1454,1456],{"id":1455},"full-configuration-reference","Full Configuration Reference",[1257,1458,1459,1474],{},[1260,1460,1461],{},[1263,1462,1463,1466,1469,1472],{},[1266,1464,1465],{},"Option",[1266,1467,1468],{},"Type",[1266,1470,1471],{},"Default",[1266,1473,1271],{},[1273,1475,1476,1494,1513],{},[1263,1477,1478,1483,1488,1491],{},[1278,1479,1480],{},[534,1481,1482],{},"apiKey",[1278,1484,1485],{},[534,1486,1487],{},"string",[1278,1489,1490],{},"-",[1278,1492,1493],{},"Project API key (required)",[1263,1495,1496,1501,1505,1510],{},[1278,1497,1498],{},[534,1499,1500],{},"host",[1278,1502,1503],{},[534,1504,1487],{},[1278,1506,1507],{},[534,1508,1509],{},"https:\u002F\u002Fus.i.posthog.com",[1278,1511,1512],{},"PostHog host URL",[1263,1514,1515,1520,1525,1530],{},[1278,1516,1517],{},[534,1518,1519],{},"timeout",[1278,1521,1522],{},[534,1523,1524],{},"number",[1278,1526,1527],{},[534,1528,1529],{},"5000",[1278,1531,1532],{},"Request timeout in milliseconds",[519,1534,1536],{"id":1535},"how-it-works","How It Works",[458,1538,1539,1540,1542,1543,1546],{},"Under the hood, ",[534,1541,1232],{}," wraps the OTLP adapter's ",[534,1544,1545],{},"sendBatchToOTLP()"," with PostHog-specific defaults:",[1548,1549,1550,1560,1569],"ul",{},[485,1551,1552,1555,1556,1559],{},[591,1553,1554],{},"Endpoint",": ",[534,1557,1558],{},"{host}\u002Fi\u002Fv1\u002Flogs"," (PostHog's OTLP log ingest endpoint)",[485,1561,1562,1555,1565,1568],{},[591,1563,1564],{},"Auth",[534,1566,1567],{},"Authorization: Bearer {apiKey}"," header",[485,1570,1571,1574,1575,1578],{},[591,1572,1573],{},"Format",": Standard OTLP ",[534,1576,1577],{},"ExportLogsServiceRequest"," with severity levels, trace context, and structured attributes",[519,1580,1582],{"id":1581},"regions","Regions",[458,1584,1585,1586,1588],{},"PostHog offers US and EU cloud hosting. Set the ",[534,1587,1500],{}," to match your region:",[1257,1590,1591,1601],{},[1260,1592,1593],{},[1263,1594,1595,1598],{},[1266,1596,1597],{},"Region",[1266,1599,1600],{},"Host",[1273,1602,1603,1612,1621],{},[1263,1604,1605,1608],{},[1278,1606,1607],{},"US (default)",[1278,1609,1610],{},[534,1611,1509],{},[1263,1613,1614,1617],{},[1278,1615,1616],{},"EU",[1278,1618,1619],{},[534,1620,1429],{},[1263,1622,1623,1626],{},[1278,1624,1625],{},"Self-hosted",[1278,1627,1628],{},"Your instance URL",[526,1630,1632],{"className":614,"code":1631,"filename":616,"language":617,"meta":532,"style":532},"# EU region\nPOSTHOG_API_KEY=phc_xxx\nPOSTHOG_HOST=https:\u002F\u002Feu.i.posthog.com\n",[534,1633,1634,1639,1648],{"__ignoreMap":532},[537,1635,1636],{"class":539,"line":540},[537,1637,1638],{"class":648},"# EU region\n",[537,1640,1641,1643,1645],{"class":539,"line":652},[537,1642,624],{"class":551},[537,1644,627],{"class":547},[537,1646,1647],{"class":564},"phc_xxx\n",[537,1649,1650,1652,1654],{"class":539,"line":671},[537,1651,1293],{"class":551},[537,1653,627],{"class":547},[537,1655,1656],{"class":564},"https:\u002F\u002Feu.i.posthog.com\n",[519,1658,1660],{"id":1659},"querying-logs-in-posthog","Querying Logs in PostHog",[458,1662,1663,1664,1667],{},"Once your logs are flowing, use the ",[591,1665,1666],{},"Logs"," tab in PostHog to query them:",[482,1669,1670,1675,1678],{},[485,1671,589,1672,1674],{},[591,1673,1666],{}," and filter by service, severity, or any structured attribute",[485,1676,1677],{},"Use the search bar to find specific log entries",[485,1679,1680],{},"Click on a log entry to see all structured attributes",[519,1682,1684],{"id":1683},"posthog-events-custom-events","PostHog Events (Custom Events)",[458,1686,1687,1688,1690,1691,850],{},"If you prefer sending logs as PostHog custom events (e.g., for product analytics, cohorts, or funnels), use ",[534,1689,1232],{}," with ",[534,1692,1693],{},"mode: 'events'",[526,1695,1697],{"className":528,"code":1696,"filename":1399,"language":531,"meta":532,"style":532},"import { createPostHogDrain } from 'evlog\u002Fposthog'\n\nconst drain = createPostHogDrain({\n  mode: 'events',\n  eventName: 'server_request',\n  distinctId: 'my-backend-service',\n})\n",[534,1698,1699,1717,1721,1735,1751,1767,1783],{"__ignoreMap":532},[537,1700,1701,1703,1705,1707,1709,1711,1713,1715],{"class":539,"line":540},[537,1702,544],{"class":543},[537,1704,548],{"class":547},[537,1706,552],{"class":551},[537,1708,555],{"class":547},[537,1710,558],{"class":543},[537,1712,561],{"class":547},[537,1714,565],{"class":564},[537,1716,568],{"class":547},[537,1718,1719],{"class":539,"line":652},[537,1720,675],{"emptyLinePlaceholder":674},[537,1722,1723,1725,1727,1729,1731,1733],{"class":539,"line":671},[537,1724,1406],{"class":702},[537,1726,1409],{"class":551},[537,1728,627],{"class":547},[537,1730,552],{"class":687},[537,1732,691],{"class":551},[537,1734,842],{"class":547},[537,1736,1737,1740,1742,1744,1747,1749],{"class":539,"line":678},[537,1738,1739],{"class":726},"  mode",[537,1741,850],{"class":547},[537,1743,561],{"class":547},[537,1745,1746],{"class":564},"events",[537,1748,729],{"class":547},[537,1750,860],{"class":547},[537,1752,1753,1756,1758,1760,1763,1765],{"class":539,"line":709},[537,1754,1755],{"class":726},"  eventName",[537,1757,850],{"class":547},[537,1759,561],{"class":547},[537,1761,1762],{"class":564},"server_request",[537,1764,729],{"class":547},[537,1766,860],{"class":547},[537,1768,1769,1772,1774,1776,1779,1781],{"class":539,"line":745},[537,1770,1771],{"class":726},"  distinctId",[537,1773,850],{"class":547},[537,1775,561],{"class":547},[537,1777,1778],{"class":564},"my-backend-service",[537,1780,729],{"class":547},[537,1782,860],{"class":547},[537,1784,1785,1787],{"class":539,"line":863},[537,1786,748],{"class":547},[537,1788,751],{"class":551},[458,1790,1791,1792,1795,1796,1799],{},"Then pass ",[534,1793,1794],{},"drain"," to your framework the same way as the default logs drain (see ",[461,1797,25],{"href":1798},"#quick-start"," above).",[1801,1802,1804,1805,1807],"callout",{"color":1803,"icon":13},"info","Custom events count towards your PostHog event quota. PostHog Logs (the default ",[534,1806,1232],{},") is significantly cheaper.",[1801,1809,1812,1815,1816,1819,1820,1823],{"color":1810,"icon":1811},"warning","i-lucide-triangle-alert",[591,1813,1814],{},"Legacy:"," ",[534,1817,1818],{},"createPostHogEventsDrain()"," is deprecated and re-routes to ",[534,1821,1822],{},"createPostHogDrain({ mode: 'events' })",". It will be removed in the next major release.",[573,1825,1827],{"id":1826},"events-configuration","Events Configuration",[1257,1829,1830,1842],{},[1260,1831,1832],{},[1263,1833,1834,1836,1838,1840],{},[1266,1835,1465],{},[1266,1837,1468],{},[1266,1839,1471],{},[1266,1841,1271],{},[1273,1843,1844,1858,1874,1893,1916],{},[1263,1845,1846,1850,1854,1856],{},[1278,1847,1848],{},[534,1849,1482],{},[1278,1851,1852],{},[534,1853,1487],{},[1278,1855,1490],{},[1278,1857,1493],{},[1263,1859,1860,1864,1868,1872],{},[1278,1861,1862],{},[534,1863,1500],{},[1278,1865,1866],{},[534,1867,1487],{},[1278,1869,1870],{},[534,1871,1509],{},[1278,1873,1512],{},[1263,1875,1876,1881,1885,1890],{},[1278,1877,1878],{},[534,1879,1880],{},"eventName",[1278,1882,1883],{},[534,1884,1487],{},[1278,1886,1887],{},[534,1888,1889],{},"evlog_wide_event",[1278,1891,1892],{},"PostHog event name",[1263,1894,1895,1900,1904,1909],{},[1278,1896,1897],{},[534,1898,1899],{},"distinctId",[1278,1901,1902],{},[534,1903,1487],{},[1278,1905,1906],{},[534,1907,1908],{},"event.service",[1278,1910,1911,1912,1915],{},"Override ",[534,1913,1914],{},"distinct_id"," for all events",[1263,1917,1918,1922,1926,1930],{},[1278,1919,1920],{},[534,1921,1519],{},[1278,1923,1924],{},[534,1925,1524],{},[1278,1927,1928],{},[534,1929,1529],{},[1278,1931,1532],{},[573,1933,1935],{"id":1934},"event-format","Event Format",[458,1937,1938],{},"evlog maps wide events to PostHog events:",[1257,1940,1941,1951],{},[1260,1942,1943],{},[1263,1944,1945,1948],{},[1266,1946,1947],{},"evlog Field",[1266,1949,1950],{},"PostHog Field",[1273,1952,1953,1972,1983,1995,2006,2018],{},[1263,1954,1955,1967],{},[1278,1956,1957,1960,1961,1960,1964],{},[534,1958,1959],{},"config.distinctId"," or ",[534,1962,1963],{},"userId",[534,1965,1966],{},"service",[1278,1968,1969,1971],{},[534,1970,1914],{}," (fallback chain)",[1263,1973,1974,1979],{},[1278,1975,1976],{},[534,1977,1978],{},"timestamp",[1278,1980,1981],{},[534,1982,1978],{},[1263,1984,1985,1990],{},[1278,1986,1987],{},[534,1988,1989],{},"level",[1278,1991,1992],{},[534,1993,1994],{},"properties.level",[1263,1996,1997,2001],{},[1278,1998,1999],{},[534,2000,1966],{},[1278,2002,2003],{},[534,2004,2005],{},"properties.service",[1263,2007,2008,2013],{},[1278,2009,2010],{},[534,2011,2012],{},"environment",[1278,2014,2015],{},[534,2016,2017],{},"properties.environment",[1263,2019,2020,2023],{},[1278,2021,2022],{},"All other fields",[1278,2024,2025],{},[534,2026,2027],{},"properties.*",[573,2029,2031],{"id":2030},"distinct-id-resolution","Distinct ID Resolution",[458,2033,2034,2035,2037],{},"The ",[534,2036,1914],{}," follows a fallback chain:",[482,2039,2040,2049,2057],{},[485,2041,2042,2046,2047],{},[591,2043,2044],{},[534,2045,1959],{}," - explicit override in ",[534,2048,1822],{},[485,2050,2051,2056],{},[591,2052,2053],{},[534,2054,2055],{},"event.userId"," - automatically picked up if present as a string",[485,2058,2059,2063],{},[591,2060,2061],{},[534,2062,1908],{}," - final fallback",[573,2065,2067],{"id":2066},"logs-vs-events","Logs vs Events",[1257,2069,2070,2084],{},[1260,2071,2072],{},[1263,2073,2074,2076,2080],{},[1266,2075],{},[1266,2077,2078],{},[534,2079,1232],{},[1266,2081,2082],{},[534,2083,1822],{},[1273,2085,2086,2104,2117,2130],{},[1263,2087,2088,2092,2098],{},[1278,2089,2090],{},[591,2091,1573],{},[1278,2093,2094,2095,607],{},"OTLP Logs (",[534,2096,2097],{},"\u002Fi\u002Fv1\u002Flogs",[1278,2099,2100,2101,607],{},"PostHog Events (",[534,2102,2103],{},"\u002Fbatch\u002F",[1263,2105,2106,2111,2114],{},[1278,2107,2108],{},[591,2109,2110],{},"PostHog UI",[1278,2112,2113],{},"Logs viewer",[1278,2115,2116],{},"Events explorer",[1263,2118,2119,2124,2127],{},[1278,2120,2121],{},[591,2122,2123],{},"Cost",[1278,2125,2126],{},"Lower (dedicated logs pipeline)",[1278,2128,2129],{},"Higher (counts as events)",[1263,2131,2132,2137,2140],{},[1278,2133,2134],{},[591,2135,2136],{},"Best for",[1278,2138,2139],{},"Debugging, log search, observability",[1278,2141,2142],{},"Product analytics, cohorts, funnels",[458,2144,2145],{},"You can use both drains simultaneously to get the best of both worlds:",[526,2147,2149],{"className":528,"code":2148,"filename":1399,"language":531,"meta":532,"style":532},"import { createPostHogDrain } from 'evlog\u002Fposthog'\n\nconst logs = createPostHogDrain()\nconst events = createPostHogDrain({ mode: 'events' })\n\nconst drain = async (ctx) => {\n  await Promise.allSettled([logs(ctx), events(ctx)])\n}\n",[534,2150,2151,2169,2173,2187,2217,2221,2243,2281],{"__ignoreMap":532},[537,2152,2153,2155,2157,2159,2161,2163,2165,2167],{"class":539,"line":540},[537,2154,544],{"class":543},[537,2156,548],{"class":547},[537,2158,552],{"class":551},[537,2160,555],{"class":547},[537,2162,558],{"class":543},[537,2164,561],{"class":547},[537,2166,565],{"class":564},[537,2168,568],{"class":547},[537,2170,2171],{"class":539,"line":652},[537,2172,675],{"emptyLinePlaceholder":674},[537,2174,2175,2177,2180,2182,2184],{"class":539,"line":671},[537,2176,1406],{"class":702},[537,2178,2179],{"class":551}," logs ",[537,2181,627],{"class":547},[537,2183,552],{"class":687},[537,2185,2186],{"class":551},"()\n",[537,2188,2189,2191,2194,2196,2198,2200,2202,2205,2207,2209,2211,2213,2215],{"class":539,"line":678},[537,2190,1406],{"class":702},[537,2192,2193],{"class":551}," events ",[537,2195,627],{"class":547},[537,2197,552],{"class":687},[537,2199,691],{"class":551},[537,2201,929],{"class":547},[537,2203,2204],{"class":726}," mode",[537,2206,850],{"class":547},[537,2208,561],{"class":547},[537,2210,1746],{"class":564},[537,2212,729],{"class":547},[537,2214,555],{"class":547},[537,2216,751],{"class":551},[537,2218,2219],{"class":539,"line":709},[537,2220,675],{"emptyLinePlaceholder":674},[537,2222,2223,2225,2227,2229,2232,2234,2237,2239,2241],{"class":539,"line":745},[537,2224,1406],{"class":702},[537,2226,1409],{"class":551},[537,2228,627],{"class":547},[537,2230,2231],{"class":702}," async",[537,2233,1248],{"class":547},[537,2235,2236],{"class":696},"ctx",[537,2238,607],{"class":547},[537,2240,703],{"class":702},[537,2242,706],{"class":547},[537,2244,2245,2248,2252,2254,2257,2260,2263,2265,2267,2269,2271,2274,2276,2278],{"class":539,"line":863},[537,2246,2247],{"class":543},"  await",[537,2249,2251],{"class":2250},"sBMFI"," Promise",[537,2253,715],{"class":547},[537,2255,2256],{"class":687},"allSettled",[537,2258,2259],{"class":726},"([",[537,2261,2262],{"class":687},"logs",[537,2264,691],{"class":726},[537,2266,2236],{"class":551},[537,2268,607],{"class":726},[537,2270,737],{"class":547},[537,2272,2273],{"class":687}," events",[537,2275,691],{"class":726},[537,2277,2236],{"class":551},[537,2279,2280],{"class":726},")])\n",[537,2282,2283],{"class":539,"line":878},[537,2284,2285],{"class":547},"}\n",[519,2287,2289],{"id":2288},"troubleshooting","Troubleshooting",[573,2291,2293],{"id":2292},"missing-apikey-error","Missing apiKey error",[526,2295,2301],{"className":2296,"code":2298,"filename":2299,"language":2300,"meta":532},[2297],"language-text","[evlog\u002Fposthog] Missing apiKey. Set POSTHOG_API_KEY env var or pass to createPostHogDrain()\n","Console","text",[534,2302,2298],{"__ignoreMap":532},[458,2304,2305],{},"Make sure your environment variable is set and the server was restarted after adding it.",[573,2307,2309],{"id":2308},"events-not-appearing","Events not appearing",[458,2311,2312],{},"PostHog processes events asynchronously. There may be a short delay (typically under 1 minute) before events appear in the dashboard.",[482,2314,2315,2322,2327],{},[485,2316,2317,2318,2321],{},"Check the server console for ",[534,2319,2320],{},"[evlog\u002Fposthog]"," error messages",[485,2323,2324,2325],{},"Verify your API key is correct and starts with ",[534,2326,606],{},[485,2328,2329,2330,2332],{},"Confirm your ",[534,2331,1500],{}," matches your PostHog region (US vs EU)",[573,2334,2336],{"id":2335},"wrong-region","Wrong region",[458,2338,2339,2340,2342],{},"If you're on PostHog EU but using the default US host, event delivery will fail and the adapter will log errors (for example under ",[534,2341,2320],{},") to your server console. Set the correct host:",[526,2344,2346],{"className":614,"code":2345,"filename":616,"language":617,"meta":532,"style":532},"POSTHOG_HOST=https:\u002F\u002Feu.i.posthog.com\n",[534,2347,2348],{"__ignoreMap":532},[537,2349,2350,2352,2354],{"class":539,"line":540},[537,2351,1293],{"class":551},[537,2353,627],{"class":547},[537,2355,1656],{"class":564},[519,2357,2359],{"id":2358},"direct-api-usage","Direct API Usage",[458,2361,2362],{},"For advanced use cases, you can use the lower-level functions:",[526,2364,2367],{"className":528,"code":2365,"filename":2366,"language":531,"meta":532,"style":532},"import { sendToPostHog, sendBatchToPostHog } from 'evlog\u002Fposthog'\n\n\u002F\u002F Send a single event to PostHog Logs (OTLP)\nawait sendToPostHog(event, {\n  apiKey: 'phc_xxx',\n})\n\n\u002F\u002F Send multiple events in one request\nawait sendBatchToPostHog(events, {\n  apiKey: 'phc_xxx',\n})\n","server\u002Futils\u002Fposthog.ts",[534,2368,2369,2393,2397,2402,2415,2431,2437,2441,2446,2460,2475],{"__ignoreMap":532},[537,2370,2371,2373,2375,2378,2380,2383,2385,2387,2389,2391],{"class":539,"line":540},[537,2372,544],{"class":543},[537,2374,548],{"class":547},[537,2376,2377],{"class":551}," sendToPostHog",[537,2379,737],{"class":547},[537,2381,2382],{"class":551}," sendBatchToPostHog",[537,2384,555],{"class":547},[537,2386,558],{"class":543},[537,2388,561],{"class":547},[537,2390,565],{"class":564},[537,2392,568],{"class":547},[537,2394,2395],{"class":539,"line":652},[537,2396,675],{"emptyLinePlaceholder":674},[537,2398,2399],{"class":539,"line":671},[537,2400,2401],{"class":648},"\u002F\u002F Send a single event to PostHog Logs (OTLP)\n",[537,2403,2404,2406,2408,2411,2413],{"class":539,"line":678},[537,2405,1030],{"class":543},[537,2407,2377],{"class":687},[537,2409,2410],{"class":551},"(event",[537,2412,737],{"class":547},[537,2414,706],{"class":547},[537,2416,2417,2420,2422,2424,2427,2429],{"class":539,"line":709},[537,2418,2419],{"class":726},"  apiKey",[537,2421,850],{"class":547},[537,2423,561],{"class":547},[537,2425,2426],{"class":564},"phc_xxx",[537,2428,729],{"class":547},[537,2430,860],{"class":547},[537,2432,2433,2435],{"class":539,"line":745},[537,2434,748],{"class":547},[537,2436,751],{"class":551},[537,2438,2439],{"class":539,"line":863},[537,2440,675],{"emptyLinePlaceholder":674},[537,2442,2443],{"class":539,"line":878},[537,2444,2445],{"class":648},"\u002F\u002F Send multiple events in one request\n",[537,2447,2449,2451,2453,2456,2458],{"class":539,"line":2448},9,[537,2450,1030],{"class":543},[537,2452,2382],{"class":687},[537,2454,2455],{"class":551},"(events",[537,2457,737],{"class":547},[537,2459,706],{"class":547},[537,2461,2463,2465,2467,2469,2471,2473],{"class":539,"line":2462},10,[537,2464,2419],{"class":726},[537,2466,850],{"class":547},[537,2468,561],{"class":547},[537,2470,2426],{"class":564},[537,2472,729],{"class":547},[537,2474,860],{"class":547},[537,2476,2478,2480],{"class":539,"line":2477},11,[537,2479,748],{"class":547},[537,2481,751],{"class":551},[458,2483,2484],{},"For custom events, use the events-specific functions:",[526,2486,2488],{"className":528,"code":2487,"filename":2366,"language":531,"meta":532,"style":532},"import { sendToPostHogEvents, sendBatchToPostHogEvents, toPostHogEvent } from 'evlog\u002Fposthog'\n\n\u002F\u002F Send a single custom event\nawait sendToPostHogEvents(event, {\n  apiKey: 'phc_xxx',\n})\n\n\u002F\u002F Send multiple custom events in one request\nawait sendBatchToPostHogEvents(events, {\n  apiKey: 'phc_xxx',\n})\n\n\u002F\u002F Convert event to PostHog format (for inspection)\nconst posthogEvent = toPostHogEvent(event, { apiKey: 'phc_xxx' })\n",[534,2489,2490,2519,2523,2528,2540,2554,2560,2564,2569,2581,2595,2601,2606,2612],{"__ignoreMap":532},[537,2491,2492,2494,2496,2499,2501,2504,2506,2509,2511,2513,2515,2517],{"class":539,"line":540},[537,2493,544],{"class":543},[537,2495,548],{"class":547},[537,2497,2498],{"class":551}," sendToPostHogEvents",[537,2500,737],{"class":547},[537,2502,2503],{"class":551}," sendBatchToPostHogEvents",[537,2505,737],{"class":547},[537,2507,2508],{"class":551}," toPostHogEvent",[537,2510,555],{"class":547},[537,2512,558],{"class":543},[537,2514,561],{"class":547},[537,2516,565],{"class":564},[537,2518,568],{"class":547},[537,2520,2521],{"class":539,"line":652},[537,2522,675],{"emptyLinePlaceholder":674},[537,2524,2525],{"class":539,"line":671},[537,2526,2527],{"class":648},"\u002F\u002F Send a single custom event\n",[537,2529,2530,2532,2534,2536,2538],{"class":539,"line":678},[537,2531,1030],{"class":543},[537,2533,2498],{"class":687},[537,2535,2410],{"class":551},[537,2537,737],{"class":547},[537,2539,706],{"class":547},[537,2541,2542,2544,2546,2548,2550,2552],{"class":539,"line":709},[537,2543,2419],{"class":726},[537,2545,850],{"class":547},[537,2547,561],{"class":547},[537,2549,2426],{"class":564},[537,2551,729],{"class":547},[537,2553,860],{"class":547},[537,2555,2556,2558],{"class":539,"line":745},[537,2557,748],{"class":547},[537,2559,751],{"class":551},[537,2561,2562],{"class":539,"line":863},[537,2563,675],{"emptyLinePlaceholder":674},[537,2565,2566],{"class":539,"line":878},[537,2567,2568],{"class":648},"\u002F\u002F Send multiple custom events in one request\n",[537,2570,2571,2573,2575,2577,2579],{"class":539,"line":2448},[537,2572,1030],{"class":543},[537,2574,2503],{"class":687},[537,2576,2455],{"class":551},[537,2578,737],{"class":547},[537,2580,706],{"class":547},[537,2582,2583,2585,2587,2589,2591,2593],{"class":539,"line":2462},[537,2584,2419],{"class":726},[537,2586,850],{"class":547},[537,2588,561],{"class":547},[537,2590,2426],{"class":564},[537,2592,729],{"class":547},[537,2594,860],{"class":547},[537,2596,2597,2599],{"class":539,"line":2477},[537,2598,748],{"class":547},[537,2600,751],{"class":551},[537,2602,2604],{"class":539,"line":2603},12,[537,2605,675],{"emptyLinePlaceholder":674},[537,2607,2609],{"class":539,"line":2608},13,[537,2610,2611],{"class":648},"\u002F\u002F Convert event to PostHog format (for inspection)\n",[537,2613,2615,2617,2620,2622,2624,2626,2628,2630,2633,2635,2637,2639,2641,2643],{"class":539,"line":2614},14,[537,2616,1406],{"class":702},[537,2618,2619],{"class":551}," posthogEvent ",[537,2621,627],{"class":547},[537,2623,2508],{"class":687},[537,2625,2410],{"class":551},[537,2627,737],{"class":547},[537,2629,548],{"class":547},[537,2631,2632],{"class":726}," apiKey",[537,2634,850],{"class":547},[537,2636,561],{"class":547},[537,2638,2426],{"class":564},[537,2640,729],{"class":547},[537,2642,555],{"class":547},[537,2644,751],{"class":551},[519,2646,2648],{"id":2647},"next-steps","Next Steps",[1548,2650,2651,2657,2663,2669],{},[485,2652,2653,2656],{},[461,2654,2655],{"href":104},"Axiom Adapter"," - Send logs to Axiom",[485,2658,2659,2662],{},[461,2660,2661],{"href":109},"OTLP Adapter"," - Send logs via OpenTelemetry Protocol",[485,2664,2665,2668],{},[461,2666,2667],{"href":412},"Custom Adapters"," - Build your own adapter",[485,2670,2671,2673],{},[461,2672,439],{"href":440}," - Security and production tips",[2675,2676,2677],"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}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":532,"searchDepth":652,"depth":652,"links":2679},[2680,2681,2686,2692,2693,2694,2695,2701,2706,2707],{"id":521,"depth":652,"text":20},{"id":571,"depth":652,"text":25,"children":2682},[2683,2684,2685],{"id":575,"depth":671,"text":576},{"id":610,"depth":671,"text":611},{"id":633,"depth":671,"text":634},{"id":1218,"depth":652,"text":426,"children":2687},[2688,2689,2690,2691],{"id":1254,"depth":671,"text":1255},{"id":1299,"depth":671,"text":1300},{"id":1391,"depth":671,"text":1392},{"id":1455,"depth":671,"text":1456},{"id":1535,"depth":652,"text":1536},{"id":1581,"depth":652,"text":1582},{"id":1659,"depth":652,"text":1660},{"id":1683,"depth":652,"text":1684,"children":2696},[2697,2698,2699,2700],{"id":1826,"depth":671,"text":1827},{"id":1934,"depth":671,"text":1935},{"id":2030,"depth":671,"text":2031},{"id":2066,"depth":671,"text":2067},{"id":2288,"depth":652,"text":2289,"children":2702},[2703,2704,2705],{"id":2292,"depth":671,"text":2293},{"id":2308,"depth":671,"text":2309},{"id":2335,"depth":671,"text":2336},{"id":2358,"depth":652,"text":2359},{"id":2647,"depth":652,"text":2648},"Send wide events to PostHog Logs via OTLP for structured log querying, debugging, and observability in your PostHog dashboard.","md",[2711,2717],{"label":2712,"icon":2713,"to":584,"target":2714,"color":2715,"variant":2716},"PostHog Dashboard","i-lucide-external-link","_blank","neutral","subtle",{"label":2655,"icon":106,"to":104,"color":2715,"variant":2716},{},{"title":113,"icon":116},{"title":453,"description":2708},"n5RutzIO0_eqC8Lk8MavWrbt9fCbGGbVy6bAUFDnixk",[2723,2725],{"title":108,"path":109,"stem":110,"description":2724,"icon":111,"children":-1},"Send logs via OpenTelemetry Protocol (OTLP) to Grafana, Datadog, Honeycomb, and any compatible backend. Supports gRPC and HTTP transports.",{"title":118,"path":119,"stem":120,"description":2726,"icon":121,"children":-1},"Send structured logs to Sentry Logs for high-cardinality querying and debugging. Zero-config setup with environment variables.",1784142040664]