QVAC Logo

getLogger( )

Creates or retrieves a namespaced logger instance. Loggers with the same namespace are cached and reused when no options are provided.

function getLogger(namespace: string, options?: LoggerOptions): Logger

Parameters

NameTypeRequired?Description
namespacestringA unique namespace identifier for this logger, used to prefix and filter log messages
optionsLoggerOptionsConfiguration options for the logger instance. When provided, bypasses the logger cache and creates a new instance

LoggerOptions

FieldTypeRequired?Description
enableConsolebooleanWhether to output log messages to the console. Defaults to true
levelLogLevelMinimum log level to emit. One of "error", "warn", "info", "debug", or "off"
namespacestringOverride the namespace passed to the constructor
transportsLogTransport[]Custom transport functions that receive log events. Each transport is called with (level, namespace, message)

Returns

Logger

A logger instance with methods for emitting log messages at various severity levels.

FieldTypeDescription
addTransport(transport: LogTransport) => voidRegisters an additional transport to receive log events
debug(...args: unknown[]) => voidLogs a debug-level message
error(...args: unknown[]) => voidLogs an error-level message
getLevel() => LogLevelReturns the current minimum log level
info(...args: unknown[]) => voidLogs an info-level message
setConsoleOutput(enabled: boolean) => voidEnables or disables console output at runtime
setLevel(level: LogLevel) => voidChanges the minimum log level at runtime
trace(...args: unknown[]) => voidLogs a trace-level message (most verbose)
warn(...args: unknown[]) => voidLogs a warning-level message

Example

import { getLogger } from "@qvac/sdk";

const logger = getLogger("my-app");

logger.info("Application started");
logger.debug("Debug details:", { key: "value" });

logger.setLevel("error");
logger.info("This will not be logged");

const verboseLogger = getLogger("my-app:verbose", {
  level: "debug",
  enableConsole: true,
  transports: [(level, namespace, message) => {
    // Custom transport: write to file, send to server, etc.
  }],
});

On this page