console.info(msg); process.exit(0); 上边两句,执行时,并不能得到打印输出,为什么呢?
因为 你是用 的 是console.info 试试 console.log
也不行啊。。。
@collaroid @hexie 好用:
$ cat testlog.js console.log('---'); process.exit(0); $ node testlog.js --- $
@leapon 我是这样放在process.on的回调里的,然后在外边抛了异常,如果没有退出这句,可以捕捉到异常,并打印出来,如果加上,就直接退出了。我想做的效果是程序有异常退出时能够把异常打印出来,怎么做好点呢? process.on('uncaughtException', function(err) { console.log('Caught exception: ' + err); process.exit(0); });
process.on('uncaughtException', function(err) { console.log('Caught exception: ' + err); process.exit(0); });
问题似乎是node退出前,缓存区的数据还没来得及写入控制台或者文件。 试试console.warn(....) 或者 console.error(...) ,这2个操作对应stderr的输出,是不设缓存的。 console.log和console.info 则对应stdout的输出,设有缓存区。仅适用于unix系统,win系统不确定。
console.warn(....)
console.error(...)
console.log
console.info
有道理。
可以用timer
console.log('---'); setTimeout(function() { process.exit(0); }, 200);
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
因为 你是用 的 是console.info 试试 console.log
也不行啊。。。
@collaroid @hexie 好用:
@leapon 我是这样放在process.on的回调里的,然后在外边抛了异常,如果没有退出这句,可以捕捉到异常,并打印出来,如果加上,就直接退出了。我想做的效果是程序有异常退出时能够把异常打印出来,怎么做好点呢?
process.on('uncaughtException', function(err) { console.log('Caught exception: ' + err); process.exit(0); });问题似乎是node退出前,缓存区的数据还没来得及写入控制台或者文件。 试试
console.warn(....)或者console.error(...),这2个操作对应stderr的输出,是不设缓存的。console.log和console.info则对应stdout的输出,设有缓存区。仅适用于unix系统,win系统不确定。有道理。
可以用timer