LogstackLogstack

JavaScript / TypeScript SDK

Complete guide to the Logstack JavaScript/TypeScript SDK (logstack-js).

JavaScript / TypeScript SDK

The logstack-js package for Node.js, browsers, Deno, Bun, and edge runtimes.

npmlogstack-js
Importimport { createLogStack } from "logstack-js"
Default APIhttps://api.logstack.tech
Ingest pathPOST {endpoint}/v1/logs

Installation

npm install logstack-js
# yarn add logstack-js · pnpm add logstack-js · bun add logstack-js

Quick start

import { createLogStack } from "logstack-js";
 
const logstack = createLogStack({
  apiKey: process.env.LOGSTACK_API_KEY!,
  // captureConsole defaults to true — existing console.* calls are shipped
});
 
logstack.info("User signed up", { userId: "user_123" });
logstack.warn("Rate limit approaching", { current: 90, limit: 100 });
logstack.error("Payment failed", { orderId: "order_456" });
logstack.critical("Database connection lost", { host: "db.example.com" });
 
await logstack.close();

Features

  • Automatic batching — buffer + flush interval
  • Retry with backoff — failed requests retried
  • captureConsole (default on) — ships console.* with source: "console"
  • Offline queue — browser localStorage cap (maxOfflineQueueSize)
  • TypeScript — full type definitions
  • Graceful shutdownflush() / close()

Log levels

LevelMethodUse case
debuglogstack.debug()Verbose diagnostics
infologstack.info()Normal operations
warnlogstack.warn()Potential issues
errorlogstack.error()Failures
criticallogstack.critical()Immediate attention
fatallogstack.fatal()Process-ending errors

API reference

createLogStack(options)

import { createLogStack } from "logstack-js";
 
const logstack = createLogStack({
  apiKey: "ls_live_xxx",
  endpoint: "https://api.logstack.tech",
  batchSize: 100,
  flushInterval: 5000,
  maxRetries: 3,
  environment: "production",
  captureConsole: true,
  onError: (error, logs) => {
    console.error("Failed to send logs:", error);
  },
});

Logging methods

logstack.info("User logged in", { userId: "user_123" });
logstack.warn("API rate limit approaching", { usage: 90 });
logstack.error("Database connection failed", { host: "db.example.com" });
logstack.critical("Payment processing unavailable", { service: "stripe" });
 
logstack.log({
  level: "error",
  message: "Operation failed",
  source: "worker-service",
  metadata: { jobId: "job_123" },
});

Flush and close

await logstack.flush();
await logstack.close();

Always call close() on graceful shutdown so buffered logs are not lost.

Explore more

On this page