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