Я хочу использовать журнал Strapi в Puppeteer.
Конфигурация Strapi завершена, и она хорошо используется во внутреннем коде Strapi.
Но даже несмотря на то, что я передал функцию журнала puppeteer, она не работает.
Вывод выводится на консоль, но сообщение внутри оценки puppeteer не отображается.
Что в чем проблема?
Основные функции и настройки страпи приведены ниже.
// puppeteer code
export const test = async (log?) => {
const cluster = getCluster();
const jobData = {
url: 'https://google.com',
};
const data = await cluster.execute(jobData,
async ({ page, data }) => {
const { url } = data;
page.setDefaultNavigationTimeout(0);
log && page.on('console', (msg) => log('[Log]:', msg.text()));
await page.goto(url, { waitUntil: 'load' });
const results = await page.evaluate(async () => {
const tic = Date.now();
try {
} catch (err) {
console.error('Detail fetch error:', err);
}
// const data = [];
// ...somethings
console.log(`Elapsed time: ${Date.now() - tic}ms`);
return data;
}); // evaluate
return results;
}); // cluster.execute
return data;
};
// call puppeteer function in cron tab
await test(strapi.log.debug.bind(strapi.log));
// result in console
strapi | debug: [Log]:
strapi | debug: [Log]:
strapi | debug: [Log]:
настройка
// ./config/middleware.ts
export default [
{
name: 'strapi::logger',
config: {
level: 'debug',
exposeInContext: true,
requests: true,
},
},
...
// ./config/logger.ts
import { winston, formats } from '@strapi/logger';
const { prettyPrint } = formats;
export default {
transports: [
new winston.transports.Console({
level: 'debug',
format: winston.format.combine(
winston.format.errors({ stack: true }),
prettyPrint({ timestamps: 'YYYY-MM-DD hh:mm:ss.SSS' })
),
}),
],
};
// puppeteer cluster settings
import { Cluster } from 'puppeteer-cluster';
let cluster: Cluster | null = null;
export async function initCluster() {
if (!cluster) {
cluster = await Cluster.launch({
concurrency: Cluster.CONCURRENCY_PAGE,
maxConcurrency: 5,
puppeteerOptions: {
headless: true,
executablePath: '/usr/bin/chromium-browser',
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-gpu',
],
ignoreHTTPSErrors: true,
},
timeout: 60 * 1000,
monitor: true,
});
// 에러 핸들러 등록(선택)
cluster.on('taskerror', (err, data) => {
console.error(`Error in task: ${err.message}`, data);
});
}
return cluster;
}
export function getCluster(): Cluster {
if (!cluster) {
throw new Error('Cluster is not initialized. Call initCluster() first.');
}
return cluster;
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -puppeteer
Как использовать журнал Страпи в Puppeteer? ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Страпи v5 переоценки контроллера Действие Удаляет другие действия по умолчанию
Anonymous » » в форуме Javascript - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-