JSPM

  • Created
  • Published
  • Downloads 46057
  • Score
    100M100P100Q203486F
  • License MIT

egg logger

Package Exports

  • egg-logger
  • egg-logger/index.js
  • egg-logger/lib/level
  • egg-logger/lib/level.js
  • egg-logger/lib/utils
  • egg-logger/lib/utils.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (egg-logger) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

egg-logger

NPM version CI Test coverage Known Vulnerabilities npm download Node.js Version

Egg logger.

diagram

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

Duplicate

Duplicate error log to other logger.

Accept an options.excludes to special whether excludes some tranports.

logger.duplicate('error', errorLogger, { excludes: [ 'console' ]});
logger.error(new Error('print to errorLogger')); // will additional call `errorLogger.error`

Redirect

Redirect special level log to other logger.

oneLogger.redirect('debug', debugLogger); // all debug level logs of `oneLogger` will delegate to debugLogger

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');

Console logger level

set environment NODE_CONSOLE_LOGGRE_LEVEL = 'INFO' | 'WARN' | 'ERROR'

License

MIT

Contributors

Contributors

Made with contributors-img.