JavaScript: comment imprimer un message sur la console d'erreur?

Comment puis-je imprimer un message sur la console d'erreur, en incluant de préférence une variable?

par exemple, quelque chose comme:

print('x=%d', x);
421
demandé sur Peter Mortensen 2008-10-03 00:23:55
la source

18 ответов

Installer Firebug et puis vous pouvez utiliser console.log(...) et console.debug(...) , etc. (voir la documentation pour plus de détails).

452
répondu Dan 2012-08-20 08:59:43
la source
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

vous pouvez aussi ajouter CSS à vos messages de journalisation:

console.log('%c My message here', "background: blue; color: black; padding-left:10px;");
288
répondu Nicholas 2015-04-23 11:52:08
la source
Les Exceptions

sont enregistrées dans la console JavaScript. Vous pouvez utiliser cela si vous voulez garder coupe-feu désactivé.

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

Utilisation:

log('Hello World');
log('another message');
83
répondu Ivo Danihelka 2013-12-02 08:17:10
la source

un bon moyen de faire cela qui fonctionne cross-browser est décrit dans débogage JavaScript: jetez vos alertes! .

55
répondu Ian Oxley 2012-07-12 21:24:53
la source

si vous utilisez Safari , vous pouvez écrire

console.log("your message here");

et il apparaît directement sur la console du navigateur.

15
répondu Lukas 2012-03-12 13:17:09
la source

Voici une solution à la question littérale de savoir comment imprimer un message sur la console d'erreur du navigateur, et non sur la console du débogueur. (Il pourrait y avoir de bonnes raisons pour contourner le débogueur.)

comme je l'ai noté dans les commentaires sur la suggestion de lancer une erreur pour obtenir un message dans la console d'erreur, un problème est que cela va interrompre le fil de l'exécution. Si vous ne voulez pas interrompre le thread, vous pouvez jeter l'erreur dans un thread séparé, celui créé en utilisant setTimeout. D'où ma solution (qui s'avère être une élaboration de celle d'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');

j'inclus le temps en millisecondes depuis l'Heure de début parce que l'heure d'expiration pourrait fausser l'ordre dans lequel vous pourriez vous attendre à voir les messages.

le deuxième argument de la méthode D'erreur est pour le nom de fichier, qui est une chaîne vide ici pour empêcher la sortie du nom de fichier inutile et le numéro de ligne. Il est possible d'obtenir l'appelant fonction mais pas d'une manière simple et indépendante du navigateur.

ce serait bien si nous pouvions afficher le message avec une icône d'avertissement ou de message à la place de l'icône d'erreur, mais je ne peux pas trouver un moyen de le faire.

un autre problème lié à l'utilisation du lancer est qu'il peut être attrapé et jeté par une prise d'essai enveloppante, et le fait de placer le jet dans un fil séparé évite également cet obstacle. Cependant, il y a encore une autre façon de saisir l'erreur, qui est si la fenêtre.le handler onerror est remplacé par un autre qui fait quelque chose de différent. Ne peut pas vous aider là-bas.

14
répondu dlaliberte 2011-02-10 17:50:58
la source

pour répondre réellement à la question:

console.error('An error occurred!');
console.error('An error occurred! ', 'My variable = ', myVar);
console.error('An error occurred! ' + 'My variable = ' + myVar);

à la place de l'erreur, vous pouvez également utiliser info, log ou warn.

9
répondu Yster 2014-03-26 19:14:26
la source

si vous utilisez Firebug et que vous devez supporter IE, Safari ou Opera, Firebug Lite ajoute console.journal (le) de soutien à ces navigateurs.

8
répondu Devon 2008-10-03 00:52:12
la source

Une note sur "throw ()" mentionné ci-dessus. Il semble qu'il arrête complètement l'exécution de la page (j'ai vérifié dans IE8) , de sorte qu'il n'est pas très utile pour la journalisation des "processus en cours" (comme pour suivre une certaine variable...)

ma suggestion est peut-être d'ajouter un élément textarea quelque part dans votre document et de changer (ou ajouter à) sa" valeur 151940920 " (qui changerait son texte) pour les informations de journalisation chaque fois que nécessaire...

5
répondu Yuval A. 2010-11-29 20:20:21
la source

le WebKit Web Inspector supporte aussi Firebug's API de console (juste un ajout mineur à Dan's answer ).

5
répondu olliej 2017-05-23 14:47:20
la source

comme toujours, Internet Explorer est le grand éléphant dans rollerskates qui vous arrête tout simplement en utilisant console.log() .

le journal de jQuery peut être adapté assez facilement, mais c'est une douleur de devoir l'ajouter partout. Une solution si vous utilisez jQuery est de le mettre dans votre fichier jQuery à la fin, Abrégé en premier:

function log()
{
    if (arguments.length > 0)
    {
        // Join for graceful degregation
        var args = (arguments.length > 1) ? Array.prototype.join.call(arguments, " ") : arguments[0];

        // This is the standard; Firebug and newer WebKit browsers support this.
        try {
            console.log(args);
            return true;
        } catch(e) {
            // Newer Opera browsers support posting erros to their consoles.
            try {
                opera.postError(args);
                return true;
            } 
            catch(e) 
            {
            }
        }

        // Catch all; a good old alert box.
        alert(args);
        return false;
    }
}
5
répondu Chris S 2012-07-12 21:31:26
la source

Visit https://developer.chrome.com/devtools/docs/console-api pour une référence complète de l'api de la console

    console.error(object[Obj,....])\

Dans ce cas, l'objet serait votre chaîne d'erreur

4
répondu devSouth555 2015-05-21 17:37:51
la source

function foo() {
  function bar() {
    console.trace("Tracing is Done here");
  }
  bar();
}

foo();

console.log(console); //to print console object
console.clear('console.clear'); //to clear console
console.log('console.log'); //to print log message
console.info('console.info'); //to print log message 
console.debug('console.debug'); //to debug message
console.warn('console.warn'); //to print Warning
console.error('console.error'); //to print Error
console.table(["car", "fruits", "color"]);//to print data in table structure
console.assert('console.assert'); //to print Error
console.dir({"name":"test"});//to print object
console.dirxml({"name":"test"});//to print object as xml formate
To Print Error:- console.error('x=%d', x);

console.log("This is the outer level");
console.group();
console.log("Level 2");
console.group();
console.log("Level 3");
console.warn("More of level 3");
console.groupEnd();
console.log("Back to level 2");
console.groupEnd();
console.log("Back to the outer level");
3
répondu Parth Raval 2018-06-12 16:22:36
la source
console.log("your message here");

travaille pour moi.. je suis à la recherche de ce.. J'ai utilisé Firefox. voici mon Script.

 $('document').ready(function() {
console.log('all images are loaded');
});

fonctionne dans Firefox et Chrome.

1
répondu D.K 2014-02-01 15:56:35
la source

la façon la plus simple de faire ceci est:

console.warn("Text to print on console");
1
répondu Kenneth John Falbous 2016-11-19 14:06:30
la source

avec la syntaxe es6 vous pouvez utiliser:

console.log(`x = ${x}`);
0
répondu jkordas 2017-12-20 13:17:28
la source

pour répondre à votre question, vous pouvez utiliser les fonctionnalités ES6,

var var=10;
console.log(`var=${var}`);
0
répondu Aniket Kulkarni 2018-06-12 16:24:11
la source

ceci n'imprime pas sur la Console, mais vous ouvrira un Popup d'alerte avec votre message qui pourrait être utile pour quelque débogage:

just do:

alert("message");
-1
répondu mmm 2013-10-23 18:25:52
la source

Autres questions sur javascript debugging