使用Winston 3.0x记录Puppeteer控制台输出

时间:2018-07-12 14:56:12

标签: node.js puppeteer winston

我正在尝试对一系列URL运行Puppeteer,并使用Winston 3.0记录控制台信息/警告/错误。我正在使用一个for循环,该循环可以通过URL数组成功运行Puppeteer并进行屏幕抓取,但是我对如何实现Winston来捕获控制台日志输出深感困惑。我确定我只是不了解一些高级概念,因为我是一名基础程序员,所以我弄错了。这是我当前的代码。     const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'piqadasherrors.log', level: 'info' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

const puppeteer = require('puppeteer');
const qaurls = ["https://www.urlnumber1.com/",
"https://urlnumber2.com/",
"https://www.urlnumber3.com/",
"https://urlnumber4.org/"
];

var parseurl = require('url');

puppeteer.launch({headless: false}).then(async browser => {

let page = await browser.newPage();

await page.setViewport({width: 1103, height: 1440});

for (var i = 0; i < qaurls.length; i++) {

    var url = qaurls[i];
    console.log('SCANNING ' + url);
    var url_parts = parseurl.parse(url);

    await page.goto(url);
    var screenshot_name = i + '_screenshot_' + url_parts.hostname + '.png';

    await page.screenshot({path: screenshot_name});

    console.log('Screenshot = ' + screenshot_name);

}

await browser.close();
});

新创建的Winston记录器是否会自动捕获相邻进程的日志输出?是否应该在我的for循环中进行某种Winston调用? Puppeteer首先将其事件公开给Winston吗?我不确定在哪里可以找到此信息,真的会感谢您的帮助。

0 个答案:

没有答案