2.1.1 • Published 2 years ago
zlogger v2.1.1
zlogger
The last console logger
Installation
npm install --save zloggerFeature
- ✔︎ 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_errorSpecify 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.logYou 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> childIt will print time before prefix, format is [HH:MM:SS], but you can disable it.
Options
- {WriteStream} stdout - stdout,
.logand.infowill pipe to it,default is process.stdout - {WriteStream} stderr - stderr,
.warnand.errorwill 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)