Skip to content

PostHog Transport Browser Server

NPM Version

posthog-js is PostHog's official JavaScript logging SDK.

Transport Source

Installation

Install the required packages:

sh
npm i loglayer @loglayer/transport-posthog posthog-js serialize-error
sh
pnpm add loglayer @loglayer/transport-posthog posthog-js serialize-error
sh
yarn add loglayer @loglayer/transport-posthog posthog-js serialize-error

Cross-Engine Compatibility

The posthog-js SDK works in both Node.js and browser environments. It may also work in Deno and Bun, but this has not been tested.

Setup

typescript
import { posthog } from 'posthog-js'
import { serializeError } from 'serialize-error'
import { LogLayer } from 'loglayer'
import { PosthogTransport } from "@loglayer/transport-posthog"

// Initialize PostHog with logs configuration
posthog.init('<ph_project_token>', {
  api_host: 'https://us.i.posthog.com',
  defaults: '2026-01-30',
  logs: {
    serviceName: 'my-app',
    environment: 'production',
  },
})

const log = new LogLayer({
  transport: new PosthogTransport({
    logger: posthog,
  }),
  errorSerializer: serializeError,
})

log.info('hello from LogLayer')
log.withMetadata({ order_id: 'ord_123' }).info('checkout completed')

Configuration Options

Required Parameters

NameTypeDescription
loggerPostHogThe initialized PostHog client instance

Optional Parameters

NameTypeDefaultDescription
enabledbooleantrueWhether the transport is enabled
level"trace" | "debug" | "info" | "warn" | "error" | "fatal""trace"Minimum log level to process. Logs below this level will be filtered out

Log Level Mapping

LogLayerPostHog
tracetrace
debugdebug
infoinfo
warnwarn
errorerror
fatalfatal

Changelog

View the changelog here.