Skip to main content

Prerequisites

Install SDK

To install the SDK, run the following:
npm install @axiomhq/pino

Create Pino logger

The example below creates a Pino logger with Axiom configured. Set the edge option to the edge domain that matches the region your dataset lives in — see Configure region for the full list.
import pino from 'pino';

const logger = pino(
  { level: 'info' },
  pino.transport({
    target: '@axiomhq/pino',
    options: {
      dataset: process.env.AXIOM_DATASET,
      token: process.env.AXIOM_TOKEN,
      edge: 'eu-central-1.aws.edge.axiom.co',
    },
  }),
);
After setting up the Axiom transport for Pino, use the logger as usual:
logger.info('Hello from Pino!');

Configure region

Set the edge option on the transport to the edge domain for your Axiom deployment.
Edge deploymentBase domain for ingest and query
US East 1 (AWS)us-east-1.aws.edge.axiom.co
EU Central 1 (AWS)eu-central-1.aws.edge.axiom.co
Always use the edge option to target a region. Don’t put a regional hostname in urlurl is reserved for non-ingest API operations and will not route ingest correctly.

Transport options

OptionRequiredDescription
datasetyesThe Axiom dataset to ingest logs into.
tokenyesAn Axiom API or personal token with ingest permission for the dataset.
edgenoEdge domain for ingest, without scheme. Example: eu-central-1.aws.edge.axiom.co. Use this to target a region.
edgeUrlnoFull edge URL (with scheme). Takes precedence over edge if both are set. Useful for self-hosted or proxy setups.
urlnoBase URL for non-ingest API operations. Only needed if you call other Axiom APIs from the same client.

Examples

For more examples, see the examples in GitHub.