Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

364
Visualizações
¿log4js requiere algún código adicional para funcionar en un servidor Apache?

Estoy tratando de agregar Log4js-Node a un servidor Node.js que se ejecuta en Apache. Aquí está mi código:

 const path = require("path"); const express = require("express"); const log4js = require('log4js'); const app = express(); const logger = log4js.getLogger(); logger.level = "debug"; const port = 443; log4js.configure({ appenders: { everything: { type: 'file', filename: 'logs.log', flags: 'w' } }, categories: { default: { appenders: ['everything'], level: 'ALL' } } }); const server = app.listen(port, () => { logger.debug("listening to requests on port " + port); }); app.get("/log", (req, res) => { res.sendFile(path.join(__dirname + "/logs.log")); });

Cuando ejecuto el script en Node.js en mi computadora y navego a localhost:443/log veo lo que espero, que es esto:

[2020-03-17T22: 50: 43.145] [DEBUG] predeterminado: escuchar solicitudes en el puerto 443

Pero cuando ejecuto el código en un servidor remoto, falla y aparece esto en la página de error (con parte de la ruta reemplazada por mí con "[eliminado]"):

Salida de la aplicación 25925: en el servidor. ([eliminado]/index.js:27:9)

Salida de la aplicación 25925: en Logger. [como depuración] ([eliminado]/12/lib/node_modules/log4js/lib/logger.js:124:10)

Salida de la aplicación 25925: en Logger.log ([eliminado]/12/lib/node_modules/log4js/lib/logger.js:73:12)

Salida de la aplicación 25925: en Logger._log ([eliminado]/12/lib/node_modules/log4js/lib/logger.js:90:16)

Salida de la aplicación 25925: en Object.send ([eliminado]/12/lib/node_modules/log4js/lib/clustering.js:97:15)

Salida de la aplicación 25925: [eliminado]/12/lib/node_modules/log4js/lib/clustering.js:97

Salida de la aplicación 25925: en el objeto. ([eliminado]/12/lib/node_modules/log4js/lib/clustering.js:8:13)

Estoy usando A2 Hosting que usa Apache 2.4.41. Opté por Node.js 12.9.0 y Log4js 6.1.2. El paquete.json debería ser el mismo tanto en mi computadora como en el servidor, y npm install en ambos.

¿Es solo un problema con Log4js y el servidor, o me he perdido algo en alguna parte?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esta fue en realidad una solución relativamente simple. La ruta a la que hace referencia el último error en el seguimiento de la pila es un módulo Log4js que implementa la compatibilidad con la agrupación en clústeres a través del módulo "clúster" de Node. La línea "8" a la que se hace referencia es cluster = require("cluster") . Está envuelto en un bloque try/catch como este:

 try { cluster = require("cluster"); //eslint-disable-line } catch (e) { debug("cluster module not present"); disabled = true; }

La instalación de Node.js en mi computadora vino con el módulo "clúster", sin embargo, por lo que sé, el servidor que estoy usando no lo admite. Además, la versión de Node que estoy usando en mi computadora es más nueva que la que estoy usando en el servidor (así que ahora instalé 12.9 en mi máquina). Creo que la versión anterior de Node no se molesta en intentar capturar la excepción e intenta cargar el módulo del clúster, falla y luego arroja el error.

Entonces, la solución simple fue comentar la mayor parte del bloque "try/catch", dejando solo el contenido de "catch" así:

 // try { // cluster = require("cluster"); //eslint-disable-line // } catch (e) { debug("cluster module not present"); disabled = true; // }

Si alguien tiene una solución mejor, estoy abierto a sugerencias.

over 4 years ago · Santiago Trujillo Relatório

0

La misma respuesta de @skittleswrapper, gracias, me funcionó. Uso Node.js 14.18.1 con log4js 6.3.0. Pero me pregunto cuál es el 'clúster' de este módulo y si podemos agregarlo a nuestra aplicación de otra manera.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda