427 votos

JavaScript: ¿Cómo se imprime un mensaje a la consola de errores?

¿Cómo puedo imprimir un mensaje a la consola de errores, preferiblemente incluyendo una variable?

Por ejemplo, algo así como:

 print('x=%d', x);
 

457voto

Dan Puntos 20968

Instale Firebug y entonces usted puede utilizar console.log(...) y console.debug(...) , etc (ver la documentación para más).

301voto

Nicholas Puntos 901
console.error(message); //gives you the red errormessage
console.log(message); //gives the default message
console.warn(message); //gives the warn message with the exclamation mark in front of it
console.info(message); //gives an info message with an 'i' in front of the message

84voto

Ivo Danihelka Puntos 1770

Las excepciones se registran en la consola JavaScript. Puede usar que si quieres mantener Firebug desactivado.

 function log(msg) {
    setTimeout(function() {
        throw new Error(msg);
    }, 0);
}
 

Uso:

 log('Hello World');
log('another message');
 

55voto

Ian Oxley Puntos 5659

Una buena manera de hacer esto que funciona entre navegadores se esbozó en la depuración de JavaScript: tire su Alertas! .

14voto

dlaliberte Puntos 1947

Aquí hay una solución para el literal de la pregunta de cómo imprimir un mensaje a la del explorador de error de la consola, no el depurador de la consola. (Puede haber buenas razones para omitir el depurador.)

Como he dicho en comentarios acerca de la propuesta para lanzar un error para obtener un mensaje en la consola de errores, uno de los problemas es que esto va a interrumpir el hilo de ejecución. Si no se desea interrumpir el hilo, se puede tirar el error en un hilo separado, uno creado mediante setTimeout. De ahí mi solución (que resulta ser una elaboración del uno por Ivo Danihelka):

var startTime = (new Date()).getTime();
function logError(msg)
{
  var milliseconds = (new Date()).getTime() - startTime;
  window.setTimeout(function () {
    throw( new Error(milliseconds + ': ' + msg, "") );
  });
}
logError('testing');

Puedo incluir el tiempo en milisegundos desde el inicio del tiempo porque el tiempo de espera podría sesgar el orden en el que usted puede esperar para ver los mensajes.

El segundo argumento para el método de Error es el nombre de archivo, que es una cadena vacía para que la salida de la inútil nombre de archivo y número de línea. Es posible obtener la función de llamada, pero no en un simple navegador de manera independiente.

Sería bueno si pudiéramos mostrar el mensaje con una advertencia o icono de mensaje en lugar del icono de error, pero no puedo encontrar una manera de hacerlo.

Otro problema con el uso de lanzar es que podría ser cogido y tirado por un adjuntando try-catch, y puesta la lanza en un subproceso independiente evita que el obstáculo también. Sin embargo, hay otra manera en que el error podría ser capturado, que es si la window.onerror controlador está sustituido con uno que hace algo diferente. Puedo ayudarte.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X