node-logger
    Preparing search index...

    node-logger

    ๐Ÿง  @sourceregistry/node-logger โ€“ Advanced Logging Framework [WORK IN PROGRESS]

    A powerful, pluggable TypeScript logger for Node.js applications.
    Supports JSON, text, CEF, and Syslog formatting, multiple transport targets (console, file, HTTP, Elasticsearch), and auto-flush strategies for production-grade logging.


    • Log Levels: TRACE, DEBUG, INFO, WARN, ERROR, FATAL
    • Formatters:
      • JSONFormatter โ€“ machine-readable
      • TextFormatter โ€“ human-friendly
      • CEFFormatter โ€“ Common Event Format for SIEM
      • SyslogFormatter โ€“ Syslog-compatible format
    • Transports:
      • ConsoleTransport
      • FileTransport, BufferedFileTransport, SmartFileTransport
      • HTTPTransport, ElasticsearchTransport
      • WorkerTransport โ€“ offload to worker thread
    • Auto-flushing: Configurable by interval, size, severity, and idle timeout
    • Tagging & Contextual Logging
    • Asynchronous-safe, fault-tolerant design

    npm install @sourceregistry/node-logger
    

    import { Console, LogLevel } from '@sourceregistry/node-logger';

    const logger = Console(LogLevel.DEBUG);
    logger.info('App started');
    logger.debug('Debugging details');
    import { File } from '@sourceregistry/node-logger';

    const fileLogger = File('./logs/app.log');
    fileLogger.info('Writing to log file');
    import { Elasticsearch } from '@sourceregistry/node-logger';

    const esLogger = Elasticsearch({
    endpoint: 'https://es.example.com/_bulk',
    apiKey: 'your-api-key',
    index: 'logs'
    });

    esLogger.error('Something went wrong!');

    import { SmartFileTransport, Logger, LogLevel } from '@sourceregistry/node-logger';

    const logger = new Logger(LogLevel.INFO, [
    new SmartFileTransport('./logs/smart.log', undefined, LogLevel.INFO, {
    enabled: true,
    interval: 5000,
    onSize: 50,
    onLevel: LogLevel.ERROR,
    onIdle: 10000
    })
    ]);


    // DEMONSTRATION:
    logger.info('This will be buffered');
    logger.debug('This will also be buffered');
    // ... After 5 seconds, both logs auto-flush to disk

    logger.error('This flushes immediately!'); // Because onLevel: ERROR
    logger.warn('This will auto-flush based on smart rules'); // Because onLevel: WARNING

    const taggedLogger = logger.withTags('auth', 'payment');
    taggedLogger.info('User logged in');

    process.on('SIGTERM', async () => {
    await logger.close();
    process.exit(0);
    });

    Apache-2.0


    We welcome issues, feature requests, and pull requests!