Egg logger
Clone or download
Latest commit 57eb762 Jul 9, 2018


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.


$ npm i egg-logger


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'info foo');
logger.warn('warn foo');
logger.error(new Error('error foo'));

Enable / Disable Transport

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


Redirect error log to other logger.

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


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',