Log Switch
安装
npm install log-switch
为什么要用 Log Switch
最近项目里面最长碰到的问题就是,要打印的 log 实在太多了。
for (var i = 0; i < 100000; i++) {
console.log('hello %d', i);
}
输出
hello 0
hello 1
...
hello 99998
hello 99999
[Finished in 40.6s]
如你所见,简单的输出 10万个 log 需要花 40.6 秒的时间。做一次测试的话实在是难以接受的情况。
关闭 console.log
为了避免把时间浪费在打 log 上,你可以使用 log switch 来屏蔽 log。
var logs = require('log-switch');
logs.disable();
for (var i = 0; i < 100000; i++) {
console.log('hello %d', i);
}
logs.restore();
console.log('over');
输出
over
[Finished in 0.2s]
于是,这样就节约了 40 秒的时间。
自动启用 log
有的时候并不是所有的 log 都要屏蔽, 特别是在程序报错的时候,那么没关系在 throw Error 的时候 LogsSwitch 可以自动启用 log 并输出。
var logs = require('log-switch');
logs.setQueueLength(10); // 设置输出栈
logs.disable();
for (var i = 0; i < 100000; i++) {
if (i === 50000) {
throw new Error('Error string');
}
console.log('hello %d', i);
}
输出
hello 49989
hello 49990
hello 49991
hello 49992
hello 49993
hello 49994
hello 49995
hello 49996
hello 49997
hello 49998
hello 49999
E:\node\log-switch\test.js:9
throw new Error('Error string');
^
Error: Error string
at Error (<anonymous>)
at new Error (E:\node\log-switch\t.js:55:22)
at Object.<anonymous> (E:\node\log-switch\test.js:9:9)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
[Finished in 0.2s with exit code 8]
[cmd: node E:\node\log-switch\test.js]
测试机配置
OS : Microsoft Windows 7 Ultimate (x64)
Processor : AMD64 Family 16 Model 6 Stepping 3 AuthenticAMD ~3000 Mhz
npm: https://npmjs.org/package/log-switch github: https://github.com/Lellansin/logSwitch