zero-to-one-logger

    1.0.0 • Public • Published

    egg-logger

    NPM version build status Test coverage David deps Known Vulnerabilities npm download

    Egg logger.

    Including two base class, Logger and Transport:

    • Transport: Save log to file, stdout/stderr and network.
    • Logger: A logger can contains multi transports.

    Install

    $ npm i egg-logger

    Usage

    Create a Logger and add a file Transport.

    const Logger = require('egg-logger').Logger;
    const FileTransport = require('egg-logger').FileTransport;
    const ConsoleTransport = require('egg-logger').ConsoleTransport;
     
    const logger = new Logger();
    logger.set('file', new FileTransport({
      file: '/path/to/file',
      level: 'INFO',
    }));
    logger.set('console', new ConsoleTransport({
      level: 'DEBUG',
    }));
    logger.debug('debug foo'); // only output to stdout
    logger.info('info foo');
    logger.warn('warn foo');
    logger.error(new Error('error foo'));

    Enable / Disable Transport

    logger.disable('file');
    logger.info('info'); // output nothing
    logger.enable('file');
    logger.info('info'); // output 'info' string

    Redirect

    Redirect error log to other logger.

    logger.redirect('error', errorLogger);
    logger.error(new Error('print to errorLogger')); // equal to `errorLogger.error`

    Reload

    logger.reload(); // will close the exists write stream and create a new one.

    Custom Transport

    You can make your own Transport for logging,e.g.: send log to your logging server.

    const urllib = require('urllib');
    const Transport = require('egg-logger').Transport;
     
    class UrllibTransport extends Transport {
     
      log(level, args, meta) {
        const msg = super.log(level, args, meta);
        return urllib.request('url?msg=' + msg);
      }
    }
     
    const logger = new Logger();
    logger.set('remote', new UrllibTransport({
      level: 'DEBUG',
    }));
    logger.info('info');

    License

    MIT

    Keywords

    none

    Install

    npm i zero-to-one-logger

    DownloadsWeekly Downloads

    3

    Version

    1.0.0

    License

    ISC

    Last publish

    Collaborators

    • lovelife10000