zlogger
v2.1.1
Published
The last console logger
Downloads
90,750
Readme
zlogger
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)