@logtape/adaptor-pino
v2.0.5
Published
Pino adapter for LogTape logging library
Maintainers
Readme
@logtape/adaptor-pino
@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 BunUsage
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.
