Skip to main content

Overview

The Logger provides structured logging with log levels, namespaces, custom transports, and works in both Node.js and browsers.

Import

import { createLogger, Logger } from "bytekit";
// or
import { createLogger } from "bytekit/logger";

Create Logger

const logger = createLogger({
  namespace: "app",
  level: "info",
  transports: [consoleTransport()]
});
options
LoggerOptions

Methods

error

logger.error(message: string, meta?: Record<string, unknown>)

warn

logger.warn(message: string, meta?: Record<string, unknown>)

info

logger.info(message: string, meta?: Record<string, unknown>)

debug

logger.debug(message: string, meta?: Record<string, unknown>)

child

Create a child logger with additional namespace.
const childLogger = logger.child("submodule");

Usage Example

import { createLogger } from "bytekit";

const logger = createLogger({
  namespace: "api",
  level: "info"
});

logger.info("User logged in", {
  userId: "123",
  timestamp: new Date().toISOString()
});

logger.error("Failed to fetch data", {
  error: error.message,
  endpoint: "/users"
});

// Child logger
const dbLogger = logger.child("database");
dbLogger.debug("Query executed", { query: "SELECT * FROM users" });

Custom Transports

import { createLogger, Transport } from "bytekit";

const fileTransport: Transport = (entry) => {
  // Write to file
  fs.appendFileSync("app.log", JSON.stringify(entry) + "\n");
};

const logger = createLogger({
  transports: [fileTransport]
});

See Also