如何从console.log

时间:2018-06-02 22:49:03

标签: javascript console console.log

我在Stack Overflow的一些问题中已经看到有示例,示例代码或片段。如下图所示:



console.log(1, 2, 3)




通过运行上面的代码段,您会看到以下内容:

console.log output

我目前正在使用node.js中的某些内容,它还需要从console.log获取输出。我发现Stack Overflow能够做到这一点令人着迷,而我甚至不知道他们是如何做到的。

如果有人可以向我发送我可以阅读的链接并了解如何从控制台API获取数据,我将非常感激。

干杯,
理查德

P.S。如果有人可以编辑此帖子来显示图片,我会非常感激。

修改
我正在开发的项目是Electron应用程序。它使用node.js进程和Electron BrowserWindow。

它使用我正在处理的记录器,需要从console.log

获取数据

有些用例可能如下所示:

console.log('%d is cool', User.firstName)
// => "Jason is cool"

console.log('User ID:', User._id)
// => A5FFE

console.log('%cUser connected!', 'color: #00FF00')
// => User connected!
// In green text.

2 个答案:

答案 0 :(得分:2)

您可以使用自己的功能覆盖window.console.log以达到这样的效果。例如:



const oldConsoleLog = console.log.bind(console);
console.log = (...params) => {
  const textToDisplay = params.map(param =>
    typeof param === 'object'
    ? JSON.stringify(param)
    : param
  );
  document.body.appendChild(document.createElement('div'))
    .textContent = textToDisplay;
  oldConsoleLog(...params);
};

console.log('foo');
console.log('bar baz');
console.log({ prop: 'value' });

.as-console-wrapper {
  height: 60%
}




答案 1 :(得分:0)

在nodejs中,console.log只是将传递给它的数据格式化,然后将其写入process.stdout,这是一个转到命令行窗口的流。要拦截它,您可以只监听该流上的事件:

process.stdout.on("data", chunk => {
  // Do what you wanna do
});