tapc-log

Logger for tapc

Usage no npm install needed!

<script type="module">
  import tapcLog from 'https://cdn.skypack.dev/tapc-log';
</script>

README

tapc-log

Test coverage Build Status Dependency Status devDependency Status NPM version node License npm download

使用方法:

需要传入当前引用日志模块的(命名空间:作者名),以便在多个模块集成时,区分日志来源。

var log = require('tapc-log')('a:author');
log.start() // 如果需要改写流,才需要调用此方法,tap插件才能使用,gulp插件不要使用该方法
log.warn('aa');

可供调用的log 方法:

  • all: except for the following
  • debug: messages to debug an application
  • info: a purely informational message
  • warn: warning condition
  • error: error condition

example:

log.all('xxxxx')
log.debug('xxxxx')
log.info('xxxxx')
log.warn('xxxxx')
log.error('xxxxx')

ps:log.error 会输出模块的author。

设置debug状态:

log.setDebug(true)

ps:只有在debug模式下,log.all和log.debug的内容才进行输出,log内容会被写入本地(process.env.HOME,'.tap','tap.log')。

第三方插件兼容机制:

只有输出内容中符合

console.log('[info]xxx');
console.log('(info)xxx');
console.log('[warn]xxx');
console.error('(error)xxx');

这类的才能被匹配到对应的日志级别,其他不被捕获的log信息,stdout流的都当做info处理,stderr流的都当做err处理

强制不输出某些内容

log.stdoutPut(false);
不想被输出的内容
log.stdoutPut(true);

关掉以后记得开启,不然后续所有内容都无法输出。

不做任何处理直接输出

log.plain('xxxxx');

Q:spawn依赖log模块的插件,如何获取期望的log输出?

A:当spawn启动一个依赖于log模块的插件,需要指定他的stdio为pipe,如果不指定,无法正确识别作者名。

Q:spawn如果希望用pipe的方式调用,如何避免log头部的重复输出?

A:使用如下方法

var ps = spawn('node', ['./b.js'], {
  cwd:process.cwd(),
  env:process.env,
  stdio:'pipe'
});
ps.stdout.on('data', function(data) {
  log.plain(data);
})