我正在尝试对一系列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吗?我不确定在哪里可以找到此信息,真的会感谢您的帮助。