Saltar al contenido

Node.js console.log () en archivo txt

Solución:

Simplemente ejecute el script en su terminal de esta manera …

node script-file.js > log-file.txt

Esto le dice al shell que escriba la salida estándar del comando node script-file.js a su archivo de registro en lugar del predeterminado, que lo está imprimiendo en la consola.

Esto se llama redirección y es muy poderoso. Digamos que desea escribir todos los errores en un archivo separado …

node script-file.js >log-file.txt 2>error-file.txt

Ahora todo console.log están escritos a log-file.txt y todo console.error están escritos a error-file.txt

Usaría una biblioteca en lugar de reinventar la rueda. Busqué un log4j-type library en npm, y se le ocurrió https://github.com/nomiddlename/log4js-node

si desea iniciar sesión en la consola y en un archivo:

var log4js = require('log4js');
log4js.configure({
  appenders: [
    { type: 'console' },
    { type: 'file', filename: 'logs/cheese.log', category: 'cheese' }
  ]
});

ahora su código puede crear un nuevo registrador con

var logger = log4js.getLogger('cheese'); 

y usa el registrador en tu código

logger.warn('Cheese is quite smelly.');
logger.info('Cheese is Gouda.');
logger.debug('Cheese is not a food.');

Podrías intentar anular el incorporado console.log hacer algo diferente.

var originalLog = console.log;

console.log = function(str){
  originalLog(str);
  // Your extra code
}

Sin embargo, esto coloca a la originalLog en el ámbito principal, por lo que debería intentar envolverlo en una función. A esto se le llama cierre, y puede leer más sobre ellos aquí.

(function(){
   var originalLog = console.log;

  console.log = function(str){
  originalLog(str);
  // Your extra code
})();

Para escribir archivos, vea esta pregunta sobre el flujo de pila y para anular console.log incluso mejor que la forma en que mostré, mira esto. La combinación de estas dos respuestas le dará la mejor solución posible.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *