magiclogger - v0.1.0
    Preparing search index...

    Class AsyncLogger

    High-performance asynchronous logger using worker threads.

    Offloads CPU-intensive operations like serialization and I/O to worker threads, keeping the main event loop responsive. Ideal for high-throughput applications that cannot afford blocking operations.

    AsyncLogger

    1.0.0

    const logger = new AsyncLogger({
    transports: [new ConsoleTransport()],
    worker: { poolSize: 2 }
    });

    // Non-blocking log operations
    logger.info('Server started');
    logger.error('Connection failed', { host: 'db.example.com' });

    // Graceful shutdown
    await logger.close();
    const logger = new AsyncLogger({
    enableMetrics: true,
    worker: {
    poolSize: 4,
    batchSize: 1000
    }
    });

    // Monitor performance
    logger.on('metrics', (metrics) => {
    console.log(`Processed: ${metrics.totalLogs}`);
    console.log(`Worker utilization: ${metrics.workerUtilization}%`);
    });

    Hierarchy

    • EventEmitter
      • AsyncLogger
    Index

    Constructors

    Accessors

    • get fmt(): TemplateFormatter

      Template literal formatter for inline styling. Uses the same TemplateParser as Logger for consistency.

      Returns TemplateFormatter

      Template formatter function

      const user = 'john';
      logger.info(logger.fmt`@green.bold{User ${user}} logged in`);
      logger.error(logger.fmt`@red{Error:} @yellow{${errorMessage}}`);
    • get s(): IStyleBuilder

      Style chain for creating styled messages (matches Logger API). Provides chainable style methods for text formatting.

      Returns IStyleBuilder

      Chainable style builder

      logger.info(logger.s.red.bold('Error:') + ' Connection failed');
      
    • get style(): IStyleBuilder

      Alias for the style builder (s). Provides a more descriptive name for the chainable style API.

      Returns IStyleBuilder

      Chainable style builder

    Methods

    • Closes the logger and terminates worker threads.

      Returns Promise<void>

      Resolves when closed

      // Graceful shutdown
      process.on('SIGTERM', async () => {
      await logger.close();
      process.exit(0);
      });
    • Logs a debug-level message.

      Parameters

      • message: string

        Debug message

      • Optionalmeta: Record<string, unknown>

        Optional metadata

      Returns { success: boolean }

      Result of the log operation

    • Logs an error-level message.

      Parameters

      • message: string

        Error message

      • Optionalerror: Error | Record<string, unknown>

        Error or metadata

      Returns { success: boolean }

      Result of the log operation

      try {
      await database.connect();
      } catch (error) {
      logger.error('Database connection failed', error);
      }
    • Flushes the current batch to workers or transports.

      Returns Promise<void>

      Promise that resolves when flush is complete

    • Flushes all pending logs and waits for completion.

      Returns Promise<void>

      Promise that resolves when flush is complete

    • Gets current performance metrics.

      Returns AsyncLoggerMetrics

      Current metrics

    • Gets current logger statistics including buffer information.

      Returns {
          buffer: {
              capacity: number;
              current: number;
              dropped: number;
              size: number;
              utilization: number;
          };
          metrics: AsyncLoggerMetrics;
      }

      Statistics object with buffer and performance info

    • Gets the current buffer utilization percentage.

      Returns number

      Utilization percentage (0-100)

    • Logs an info-level message.

      Parameters

      • message: string

        Message to log

      • Optionalmeta: Record<string, unknown>

        Optional metadata

      Returns { success: boolean }

      Result of the log operation

      logger.info('User logged in', { userId: 123, ip: '192.168.1.1' });
      
    • Checks if the logger is experiencing backpressure.

      Returns boolean

      True if backpressured

    • Lists all transport names.

      Returns string[]

      Array of transport names

    • Logs a critical message with retry on failure.

      Parameters

      • level: string

        Log level

      • message: string

        Log message

      • Optionalmeta: Record<string, unknown>

        Optional metadata

      Returns Promise<void>

      Promise that resolves when logged

    • Removes a transport from the logger.

      Parameters

      • name: string

        Name of transport to remove

      Returns void

    • Waits for logger initialization to complete.

      Returns Promise<void>

      Resolves when ready

    • Logs a warning-level message.

      Parameters

      • message: string

        Warning message

      • Optionalmeta: Record<string, unknown>

        Optional metadata

      Returns { success: boolean }

      Result of the log operation