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

2.1.1 • Public • Published

zlogger

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

The last console logger

Installation

npm install --save zlogger

Feature

  • ✔︎ Extends Console
  • ✔︎ Support custom prefix before every line
  • ✔︎ Support custom stdout and stderr
  • ✔︎ Support print time
  • ✔︎ Support child logger
  • ✔︎ Support logger level

Usage

zlogger is same as global console which has .log, .info, .warn, .error.

Every line will start with prefix that you customize.

const logger = new ConsoleLogger({
  prefix: '> ',
});

Support log level: DEBUG / INFO / WARN / ERROR.

const logger = new ConsoleLogger({
  prefix: '> ',
  level: 'WARN',
});

logger.error('msg_error');
logger.info('msg_info');

// [15:03:46] prefix > msg_error

Specify stdout/stderr, default is process.stdout/process.stderr, you can use fs if you want to print to file.

const logger = new ConsoleLogger({
  stdout: fs.createWriteStream('stdout.log'),
  stderr: fs.createWriteStream('stderr.log'),
});
logger.info('info');
logger.error('error');

// cat stdout.log
// cat stderr.log

You can create a child logger, the first argument can be a ChildProcess or writable stream. If you give a prefix, it will print after prefix defined by the parent logger.

const cp = require('child_process');
const logger = new ConsoleLogger({
  prefix: 'prefix > ',
});
logger.info('see directory')

const ls = cp.spawn('ls', { cwd: __dirname });
logger.child(ls, '> ');

// [15:03:46] prefix > see directory
// [15:03:46] prefix > > History.md
// [15:03:46] prefix > > README.md
// [15:03:46] prefix > > index.js
// [15:03:46] prefix > > node_modules
// [15:03:46] prefix > > package.json
// [15:03:46] prefix > > test

.child will return a new logger.

const logger = new ConsoleLogger({
  prefix: 'parent> ',
});
logger.info('parent');

const child = logger.child('child> ');
child.info('child');

// [15:02:43] parent> parent
// [15:02:43] parent> child> child

It will print time before prefix, format is [HH:MM:SS] , but you can disable it.

Options

  • {WriteStream} stdout - stdout, .log and .info will pipe to it,default is process.stdout
  • {WriteStream} stderr - stderr, .warn and .error will pipe to it,default is process.stderr
  • {String|Function} prefix - every line will start with prefix, if it's a function, it will be called every line print.
  • {Boolean} time - print time
  • {String|Number} level - log level

License

(The MIT License)

Readme

Keywords

Package Sidebar

Install

npm i zlogger

Weekly Downloads

18,868

Version

2.1.1

License

MIT

Unpacked Size

8.99 kB

Total Files

4

Last publish

Collaborators

  • fengmk2
  • popomore