iojs/electron - 将控制台中的所有内容输出到文件
iojs/electron - Output all in console to file
我目前正在使用 iojs 2.3.1 在 Electron 中构建一个应用程序,我想做的是将开发工具控制台中打印出的所有内容输出到文件中。
在 node 的早期版本中,这曾经可以通过 stdout/stderr 的管道获得,现在已经不可能了,我这辈子都找不到一个可行且不涉及的解决方案更改大量代码。
有人对此有可行的解决方案吗?谢谢!
您可以像这样创建自定义控制台:
var output = fs.createWriteStream('./stdout.log');
var errorOutput = fs.createWriteStream('./stderr.log');
// custom simple logger
var logger = new Console(output, errorOutput);
// use it like console
var count = 5;
logger.log('count: %d', count);
// in stdout.log: count 5
见https://iojs.org/api/console.html#console_new_console_stdout_stderr
显然异常不会打印到错误日志,这是一个解决方法:
process.on('uncaughtException', function (err) {
logger.error('Caught exception: ' + err);
});
最终工作结果是使用 Winston 并进行快速更改以使其与 Electron 一起使用。 https://github.com/dustinblackman/winston
编辑:
由于这个答案还在查看中,所以这个方案比较好。 https://github.com/dustinblackman/winston-electron
我目前正在使用 iojs 2.3.1 在 Electron 中构建一个应用程序,我想做的是将开发工具控制台中打印出的所有内容输出到文件中。
在 node 的早期版本中,这曾经可以通过 stdout/stderr 的管道获得,现在已经不可能了,我这辈子都找不到一个可行且不涉及的解决方案更改大量代码。
有人对此有可行的解决方案吗?谢谢!
您可以像这样创建自定义控制台:
var output = fs.createWriteStream('./stdout.log');
var errorOutput = fs.createWriteStream('./stderr.log');
// custom simple logger
var logger = new Console(output, errorOutput);
// use it like console
var count = 5;
logger.log('count: %d', count);
// in stdout.log: count 5
见https://iojs.org/api/console.html#console_new_console_stdout_stderr
显然异常不会打印到错误日志,这是一个解决方法:
process.on('uncaughtException', function (err) {
logger.error('Caught exception: ' + err);
});
最终工作结果是使用 Winston 并进行快速更改以使其与 Electron 一起使用。 https://github.com/dustinblackman/winston
编辑:
由于这个答案还在查看中,所以这个方案比较好。 https://github.com/dustinblackman/winston-electron