Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

@logtape/adaptor-pino

JSR npm

@logtape/adaptor-pino is a LogTape adapter that forwards log records to Pino loggers, enabling seamless integration between LogTape-enabled libraries and applications using Pino for logging infrastructure.

Installation

deno add jsr:@logtape/adaptor-pino  # for Deno
npm  add     @logtape/adaptor-pino  # for npm
pnpm add     @logtape/adaptor-pino  # for pnpm
yarn add     @logtape/adaptor-pino  # for Yarn
bun  add     @logtape/adaptor-pino  # for Bun

Usage

Using the install() function

The simplest way to integrate LogTape with Pino is to use the install() function:

import pino from "pino";
import { install } from "@logtape/adaptor-pino";

// With a custom Pino logger
const pinoLogger = pino({
  level: "info",
  transport: {
    target: "pino-pretty",
    options: {
      colorize: true
    }
  }
});

install(pinoLogger);

// That's it! All LogTape logs will now be routed to your Pino logger
import { getLogger } from "@logtape/logtape";
const logger = getLogger("my-app");
logger.info("This will be logged through Pino");

You can also pass configuration options:

import { install } from "@logtape/adaptor-pino";

// With custom options
install(pinoLogger, {
  category: {
    position: "start",
    decorator: "[]",
    separator: "."
  }
});

Manual configuration

For full control over the Pino integration, configure LogTape manually:

import { configure } from "@logtape/logtape";
import { getPinoSink } from "@logtape/adaptor-pino";
import pino from "pino";

const pinoLogger = pino({
  level: "info",
  transport: {
    target: "pino-pretty",
    options: {
      colorize: true
    }
  }
});

await configure({
  sinks: {
    pino: getPinoSink(pinoLogger, {
      category: {
        position: "start",
        decorator: "[]",
        separator: "."
      }
    })
  },
  loggers: [
    { category: "my-library", sinks: ["pino"] }
  ]
});

Category formatting

The adapter supports flexible category formatting options:

import { getPinoSink } from "@logtape/adaptor-pino";

// Hide categories completely
const sink1 = getPinoSink(logger, { category: false });

// Use default formatting (category with ":" separator)
const sink2 = getPinoSink(logger, { category: true });

// Custom formatting
const sink3 = getPinoSink(logger, {
  category: {
    position: "end",      // "start" or "end"
    decorator: "[]",      // "[]", "()", "<>", "{}", ":", "-", "|", "/", ""
    separator: "::"       // custom separator for multi-part categories
  }
});

Docs

See the API reference on JSR for further details.