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)