Install OpenTelemetry logging
Contents
PostHog Logs works with any OpenTelemetry-compatible client, so most languages don't need a PostHog-specific package. The JavaScript web, React Native, iOS, Android, and Flutter SDKs also have native logging.
Platforms
Note: Logs uses the OpenTelemetry Protocol (OTLP) standard. If your language isn't listed, check the OpenTelemetry documentation for compatible libraries.
SDK support by signal
| SDK | Logs | Traces | Metrics |
|---|---|---|---|
JavaScript web (posthog-js) | Native, 1.368.0+ | OpenTelemetry. posthog-js doesn't create spans. Use tracing_headers to link requests to sessions. | Native posthog.metrics, 1.399.0+ |
Node.js (posthog-node) | Native posthog.logger, 5.65.0+, or OpenTelemetry | Native, 5.52.0+ (experimental), or OpenTelemetry | Native posthog.metrics, 5.43.0+ |
Python (posthog) | OpenTelemetry | Native, 7.58.0+, or OpenTelemetry | Native posthog.metrics, 7.23.0+ |
| React Native | Native, posthog-react-native@4.44.0+ | OpenTelemetry | OpenTelemetry |
| iOS | Native, posthog-ios@3.58.0+ | OpenTelemetry | OpenTelemetry |
| Android | Native, posthog-android@3.46.0+ | OpenTelemetry | OpenTelemetry |
| Flutter | Native, posthog_flutter@5.27.0+ | OpenTelemetry | OpenTelemetry |
| Any other language | OpenTelemetry | OpenTelemetry | OpenTelemetry |
"Native" means the PostHog SDK records the signal with no OpenTelemetry packages. "OpenTelemetry" means you send it with an OpenTelemetry SDK or Collector pointed at your PostHog OTLP endpoint (/i/v1/logs, /i/v1/traces, or /i/v1/metrics) and your project token. Every PostHog SDK also captures events natively. Prometheus exporters can send metrics through the metrics agent.





