logtape is a free, open source monitoring & observability project written in TypeScript and released under MIT. It has 2,023 GitHub stars, 55 forks and 12 open issues, and was last pushed 15 days ago. On this registry it ranks #177 of 270 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 18 stars over the last 30 tracked days.

What is logtape?

LogTape is a zero-dependency logging library for JavaScript and TypeScript that runs unchanged across Deno, Node.js, Bun, browsers, and edge functions, and it is designed first for library authors who need to emit logs without imposing configuration on the applications that install them.

What it is

LogTape is an open-source logging library written in TypeScript and published under the MIT licence. It lives in the JavaScript and TypeScript ecosystem, where it is distributed through two package registries: JSR as @logtape/logtape and npm as @logtape/logtape. The project is a monorepo, and the main package @logtape/logtape provides the core logging functionality, with additional packages sitting alongside it. The homepage at logtape.org hosts the manual, including the installation guide, structured logging guide, category guide, redaction guide, sink guide, and integration guide.

The concrete problem it solves is the configuration deadlock in conventional loggers. Traditional loggers expect the application to configure logging before anything is logged, which means a library that wants to record diagnostics either forces its own configuration on the host application or stays silent. LogTape takes the library-first position instead: a library can call the logger safely with no setup at all, and the application retains full control over level, sinks, and output. That is the specific thing it replaces, in place of loggers that treat the application as the sole legitimate owner of logging configuration.

Key capabilities

  • Zero dependencies, so LogTape adds nothing to the dependency graph of the package that uses it.
  • Library-first design documented at the manual's library page, letting a library provide logging capability to its users without configuring it.
  • Universal runtime support across Deno, Node.js, Bun, browsers, and edge functions, with the same code in each environment.
  • Structured logging, so messages carry structured data rather than only a formatted string.
  • Hierarchical categories that manage loggers, where setting the level at one point in the category hierarchy controls verbosity for the levels beneath it.
  • Template literals for log messages, allowing placeholders and values in the call site.
  • Built-in data redaction using pattern-based and field-based approaches to strip sensitive information from logs.
  • Small sinks API, described as dead simple to extend with your own sinks.
  • First-class framework integrations with Express, Fastify, GraphQL Yoga, Hono, Koa, and Drizzle ORM, covering automatic HTTP request logging, GraphQL server logging, and database query logging.

Who uses it and how

  • Library maintainers who ship a package to unknown consumers and want diagnostics available without demanding that consumers configure a logger first.
  • Application teams that need to own log level, sink routing, and redaction policy across every dependency at once.
  • Projects deployed to more than one runtime, since the same logging calls work on Deno, Node.js, Bun, browsers, and edge functions without code changes.
  • Teams subject to data-handling rules that need pattern-based or field-based redaction applied before entries leave the process.
  • Services built on Express, Fastify, GraphQL Yoga, Hono, Koa, or Drizzle ORM that want automatic HTTP request, GraphQL server, or database query logging.

Getting started

Installation is by package manager against the published package: deno add jsr:@logtape/logtape for Deno, or npm add @logtape/logtape, pnpm add @logtape/logtape, yarn add @logtape/logtape, or bun add @logtape/logtape elsewhere, with further detail in the installation manual on logtape.org.

How it compares

The provided facts name no paid products that LogTape replaces, and they name no comparable logging libraries. On the evidence available here, it stands alone in this registry.

When to use it — and when not to

A self-hoster operates nothing extra for LogTape itself, because there is no server, database, or SMTP component to run, and no hosted tier is described in the facts; output goes to whatever sinks the application chooses to attach. Pick it when the priority is a dependency-free logger that a library can safely call and an application can fully control. Do not pick it if the requirement is a turnkey hosted log aggregation service with dashboards and alerting bundled in, since the facts describe a library and manual only, and the README excerpt supplied here is truncated before the package list is complete.

project readme (upstream, from github) — read inline

LogTape

JSR npm Bundlephobia GitHub Actions Codecov

LogTape is a logging library for JavaScript and TypeScript designed with a library-first philosophy. Unlike traditional loggers, LogTape is unobtrusive—libraries can safely log without any configuration, while applications retain full control. With zero dependencies and universal runtime support, it works seamlessly across Deno, Node.js, Bun, browsers, and edge functions.

The highlights of LogTape are:

  • Zero dependencies: LogTape has zero dependencies. You can use LogTape without worrying about the dependencies of LogTape.

  • Library support: LogTape is designed to be used in libraries as well as applications. You can use LogTape in libraries to provide logging capabilities to users of the libraries.

  • Runtime diversity: LogTape supports Deno, Node.js, Bun, edge functions, and browsers. You can use LogTape in various environments without changing the code.

  • Structured logging: You can log messages with structured data.

  • Hierarchical categories: LogTape uses a hierarchical category system to manage loggers. You can control the verbosity of log messages by setting the log level of loggers at different levels of the category hierarchy.

  • Template literals: LogTape supports template literals for log messages. You can use template literals to log messages with placeholders and values.

  • Built-in data redaction: LogTape provides robust capabilities to redact sensitive information from logs using pattern-based or field-based approaches.

  • Dead simple sinks: You can easily add your own sinks to LogTape.

  • Framework integrations: First-class support for popular frameworks like Express, Fastify, GraphQL Yoga, Hono, Koa, and Drizzle ORM with automatic HTTP request logging, GraphQL server logging, and database query logging.

LogTape web console output LogTape terminal output

Installation

LogTape is available on JSR and npm. You can install LogTape for various JavaScript runtimes and package managers:

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

See also the installation manual for more details.

Packages

LogTape is a monorepo that contains several packages. The main package is @logtape/logtape, which provides the core logging functionality. Other packages provide additional features and integrations. The following is a list of the packages in the LogTape monorepo:

Package JSR npm Description
@logtape/logtape JSR npm Core logging functionality
@logtape/adaptor-bunyan JSR npm Bunyan adapter
@logtape/adaptor-log4js JSR npm log4js adapter
@logtape/adaptor-pino JSR npm Pino adapter
@logtape/adaptor-winston JSR npm winston adapter
@logtape/cloudwatch-logs JSR npm AWS CloudWatch Logs sink
@logtape/config JSR npm Object-based configuration
@logtape/drizzle-orm JSR npm Drizzle ORM integration
@logtape/elysia JSR npm Elysia integration
@logtape/express JSR npm Express integration
@logtape/fastify JSR npm Fastify integration
@logtape/graphql-yoga JSR npm GraphQL Yoga integration
@logtape/hono JSR npm Hono integration
@logtape/koa JSR npm Koa integration
@logtape/lint JSR npm ESLint/Oxlint/Deno Lint rules
@logtape/file JSR npm File sinks
@logtape/otel JSR npm OpenTelemetry sink
@logtape/pretty JSR npm Beautiful text formatter
@logtape/redaction JSR npm Data redaction
@logtape/sentry JSR npm Sentry sink
@logtape/syslog JSR npm Syslog sink
@logtape/testing JSR npm Testing utilities
@logtape/testing-bun JSR npm Bun test integration
@logtape/testing-deno JSR Deno test integration
@logtape/testing-node JSR npm Node.js test integration
@logtape/testing-vitest JSR npm Vitest integration
@logtape/windows-eventlog JSR npm Windows Event Log sink

Docs

The docs of LogTape is available at . For the API references, see .

Frequently asked questions

Is logtape free to use?

logtape is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does logtape do?

Unobtrusive logging library with zero dependencies for Deno, Node.js, Bun, browsers, and edge functions

What is logtape written in?

logtape is primarily written in TypeScript. Its source is publicly available at https://github.com/dahlia/logtape, and it has 2,023 GitHub stars.