Как использовать журнал Страпи в Puppeteer?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать журнал Страпи в Puppeteer?

Сообщение Anonymous »

Я хочу использовать журнал 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Страпи v5 переоценки контроллера Действие Удаляет другие действия по умолчанию
    Anonymous » » в форуме Javascript
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Puppeteer/space/Browsershot щелкните определенный атрибут
    Гость » » в форуме Javascript
    0 Ответы
    30 Просмотры
    Последнее сообщение Гость
  • Есть ли способ установить собственный сертификат в Puppeteer?
    Гость » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Гость
  • Puppeteer заполнит данные имени пользователя и пароля в диалоговом окне предупреждения.
    Гость » » в форуме Javascript
    0 Ответы
    69 Просмотры
    Последнее сообщение Гость
  • Как получить заголовок страницы XHR с помощью puppeteer
    Гость » » в форуме Php
    0 Ответы
    51 Просмотры
    Последнее сообщение Гость

Вернуться в «Javascript»