egg-logger
TypeScript icon, indicating that this package has built-in type declarations

3.6.1 • Public • Published

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.

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
3.6.1
20,464latest
1.8.02,519latest-1

Version History

VersionDownloads (Last 7 Days)Published
3.6.1
20,464
3.6.0
57
3.5.0
772
3.4.2
36
3.4.1
121
3.4.0120
3.3.1
180
3.3.0139
3.2.171
3.2.01
3.1.11
3.1.02
3.0.11
3.0.00
2.9.117,936
2.9.0420
2.8.0178
2.7.1302
2.7.023
2.6.2332
2.6.1125
2.6.01
2.5.01
2.4.2283
1.8.02,519
2.4.1135
2.4.00
2.3.23
2.3.11,657
2.3.02
2.2.10
2.2.00
2.1.00
2.0.32
2.0.21
2.0.10
2.0.01
1.7.14,644
1.7.00
1.6.20
1.6.124
1.6.010
1.5.00
1.4.10
1.4.00
1.3.00
1.2.00
1.1.10
1.1.00
1.0.10
1.0.00
0.0.10

Package Sidebar

Install

npm i egg-logger

Weekly Downloads

50,564

Version

3.6.1

License

MIT

Unpacked Size

51.1 kB

Total Files

19

Last publish

Collaborators

  • gxkl
  • eggjs-admin
  • fengmk2
  • atian25
  • dead_horse
  • wanghx
  • hyj1991
  • killagu
  • coolme200
  • mansonchor.zzw
  • hubcarl
  • gemwuu
  • akitasummer
  • popomore