magiclogger - v0.1.0
    Preparing search index...

    Class TransportManager

    TransportManager handles all transport operations for the logger.

    This version uses a registry pattern to avoid importing all transports, enabling proper tree-shaking. Transports must be registered before use.

    TransportManager

    // Register transports you need
    import { TransportManager, TransportRegistry } from 'magiclogger/transports/base';
    import { ConsoleTransport } from 'magiclogger/console';
    import { FileTransport } from 'magiclogger/file';

    // Register factories
    TransportRegistry.register('console', (config) => new ConsoleTransport(config));
    TransportRegistry.register('file', (config) => new FileTransport(config));

    // Or use the helper to register core transports
    import { registerCoreTransports } from 'magiclogger/transports/base';
    await registerCoreTransports();

    // Now create manager and add transports
    const manager = new TransportManager();
    await manager.addTransport({ type: 'console', level: 'info' });

    Hierarchy

    • EventEmitter
      • TransportManager
    Index

    Constructors

    • Creates a new TransportManager instance.

      Parameters

      • options: {
            aggregation?: {
                fields?: ("level" | "custom" | "tags" | "loggerId")[];
                interval?: number;
                targets?: string[];
            };
            defaultTimeout?: number;
            enableAggregation?: boolean;
            errorHandler?: (
                error: Error,
                transport: Transport,
                entry?: LogEntry,
            ) => void;
            healthCheckIntervalMs?: number;
            maxPauseQueueSize?: number;
            stopOnSuccess?: boolean;
            useExternalRegistry?: boolean;
        } = {}

        Configuration options

      Returns TransportManager

    Methods

    • Add a transport instance directly to the manager. This is an alias for registerTransport for backward compatibility.

      Parameters

      • transport: Transport

        Transport instance to add

      • Optionalpriority: number

        Optional priority for the transport

      Returns Promise<Transport>

      The added transport

    • Close all transports and clean up. Ensures graceful shutdown with proper state transitions.

      Returns Promise<void>

      Resolves when closed

    • Get statistics for all transports.

      Returns Record<
          string,
          TransportStats & {
              performance: | null
              | {
                  avgTime: number;
                  count: number;
                  errors: number;
                  lastError?: string;
                  totalTime: number;
              };
          },
      > & {
          _manager?: {
              activeTransports: number;
              aggregationEnabled: boolean;
              currentAggregation?: unknown;
              transportCount: number;
          };
      }

      Transport statistics

    • Asynchronous log method for backward compatibility. Modern transports use worker threads internally for async operations.

      Parameters

      • entry: LogEntry | MinimalLogEntry

        Log entry

      Returns Promise<void>

      Resolves when logged

    • High-performance synchronous log dispatch optimized for minimal overhead.

      Performance optimizations:

      • Early exit conditions to avoid unnecessary processing
      • Cached transport list to reduce iteration overhead
      • Minimal object allocation in hot path
      • Direct dispatch without promise overhead

      Parameters

      • entry: LogEntry | MinimalLogEntry

        Log entry to dispatch

      Returns void

    • Register a transport factory.

      Parameters

      • type: string

        Transport type

      • factory: TransportFactory

        Factory function

      Returns void

    • Register an already instantiated transport with the manager.

      Parameters

      • transport: Transport

        Transport instance to register

      Returns Promise<void>

      Resolves when transport is registered

    • Remove a transport from the manager.

      Parameters

      • name: string

        Transport name

      Returns Promise<void>

      Resolves when removed

    • Enable or disable a transport.

      Parameters

      • name: string

        Transport name

      • enabled: boolean

        Whether to enable the transport

      Returns void