Node.js logs installation

Logs is in beta

Logs is free to use whilst in beta, though we'd love to hear your feedback in app.

  1. Install OpenTelemetry packages

    Required
    Terminal
    npm install @opentelemetry/sdk-node @opentelemetry/exporter-logs-otlp-http @opentelemetry/api-logs @opentelemetry/resources
  2. Get your project API key

    Required

    You'll need your PostHog project API key to authenticate log requests. This is the same API key you use for capturing events and exceptions.

    You can find your project API key in Project Settings.

  3. Configure the SDK

    Required

    Set up the OpenTelemetry SDK to send logs to PostHog.

    JavaScript
    import { NodeSDK } from '@opentelemetry/sdk-node';
    import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
    import { BatchLogRecordProcessor } from '@opentelemetry/sdk-logs';
    import { resourceFromAttributes } from '@opentelemetry/resources';
    const sdk = new NodeSDK({
    resource: resourceFromAttributes({
    'service.name': 'my-node-service',
    }),
    logRecordProcessor: new BatchLogRecordProcessor(
    new OTLPLogExporter({
    url: 'https://us.i.posthog.com/i/v1/logs',
    headers: {
    'Authorization': `Bearer ${YOUR_PROJECT_API_KEY}`
    }
    })
    )
    });
    sdk.start();

    Alternatively, you can pass the API key as a query parameter:

    JavaScript
    const sdk = new NodeSDK({
    logRecordProcessor: new BatchLogRecordProcessor(
    new OTLPLogExporter({
    url: `https://us.i.posthog.com/i/v1/logs?token=${YOUR_PROJECT_API_KEY}`
    })
    )
    });
  4. Use OpenTelemetry logging

    Required

    Now you can start logging with OpenTelemetry:

    JavaScript
    import { logs } from '@opentelemetry/api-logs';
    const logger = logs.getLogger('my-app');
    // Log with different levels and attributes
    logger.emit({ severityText: 'trace', body: 'log data', attributes: {'my_attribute': 'stringValue'} });
    logger.emit({ severityText: 'warn', body: 'log data', attributes: {'warning_count': 3} });
    logger.emit({ severityText: 'error', body: 'log data', attributes: {'json_attribute': [1,2,3]} });
  5. Test your setup

    Recommended

    Once everything is configured, test that logs are flowing into PostHog:

    1. Send a test log from your application
    2. Check the PostHog logs interface for your log entries
    3. Verify the logs appear in your project
    View your logs in PostHog
  6. Next steps

    Checkpoint
    What you can do with your logs
    ActionDescription
    Search logsUse the search interface to find specific log entries
    Filter by levelFilter by INFO, WARN, ERROR, etc.
    Set up alertsGet notified when specific log patterns occur
    Correlate with eventsConnect log data with your PostHog analytics
    Troubleshoot common issues

Community questions

Was this page useful?

Questions about this page? or post a community question.