try nodejs node logs handling errores error err node.js logging stack-trace

node.js - nodejs - node js error stack



Cómo registrar seguimientos de pila en node.js (4)

Echa un vistazo al sitio de callsite , esto toma el objeto de la pila para que puedas usarlo como quieras (y como un objeto, en lugar de una cadena). Es bastante impresionante, y agradable y simple. Echa un vistazo a this para obtener más información sobre jugar con la pila

Ya hay algunos registradores excelentes para Node.js, pero construí un registrador que genera una salida coloreada y simple y un breve seguimiento de la pila. No anula console.log, lo que me parece útil. Si estás interesado, puedes encontrarlo aquí, node-logger .

Buscando un paquete node.js que maneje el seguimiento de la pila de manera similar a como se hace en RoR:

Rieles: registro de todo el seguimiento de la pila de una excepción


Hay una función para eso: console.trace()

En caso de que no desee iniciar sesión en la consola, puede obtener el valor de la cadena de seguimiento de la pila utilizando el new Error().stack


Si usa winston , puede agregar esto:

winston = require(''winston''); logger = expandErrors(new winston.Logger()); logger.info(new Error("my error")); // Extend a winston by making it expand errors when passed in as the // second argument (the first argument is the log level). function expandErrors(logger) { var oldLogFunc = logger.log; logger.log = function() { var args = Array.prototype.slice.call(arguments, 0); if (args.length >= 2 && args[1] instanceof Error) { args[1] = args[1].stack; } return oldLogFunc.apply(this, args); }; return logger; }

y luego obtienes registradores de winston con rastros de pila. También está en una esencia .


Puede obtener este texto fuera de la propiedad .stack de cualquier error. Por ejemplo:

try { throw new Error(); } catch (e) { console.log(e.stack); }

o simplemente un new error con el fin de obtener el seguimiento de la pila

console.log(new Error().stack)