JavaScript: hoe druk ik een bericht af naar de foutconsole?

Hoe kan ik een bericht naar de foutconsole afdrukken, bij voorkeur inclusief een variabele?

Bijvoorbeeld zoiets als:

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

Antwoord 1, autoriteit 100%

Installeer Firebugen dan kun je console.log(...)en console.debug(...), enz. (zie de documentatievoor meer).


Antwoord 2, autoriteit 70%

console.error(message); // Outputs an error message to the Web Console
console.log(message); // Outputs a message to the Web Console
console.warn(message); // Outputs a warning message to the Web Console
console.info(message); // Outputs an informational message to the Web Console. In some browsers it shows a small "i" in front of the message.

U kunt ook CSS toevoegen:

console.log('%c My message here', "background: blue; color: white; padding-left:10px;");

Meer informatie vindt u hier: https://developer.mozilla .org/en-US/docs/Web/API/console


Antwoord 3, autoriteit 18%

Uitzonderingen worden aangemeld bij de JavaScript-console. Je kunt dat gebruiken als je Firebuguitgeschakeld wilt houden.

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

Gebruik:

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

Antwoord 4, autoriteit 12%

Een goede manier om dit te doen die cross-browser werkt, wordt beschreven in Debuggen in JavaScript: gooi je waarschuwingen weg!.


Antwoord 5, autoriteit 3%

Hier is een oplossing voor de letterlijke vraag hoe een bericht naar de foutconsole van de browser moet worden afgedrukt, niet naar de foutopsporingsconsole. (Er kunnen goede redenen zijn om de debugger te omzeilen.)

Zoals ik opmerkte in opmerkingen over de suggestie om een fout te genereren om een bericht in de foutconsole te krijgen, is één probleem dat dit de uitvoeringsdraad zal onderbreken. Als u de thread niet wilt onderbreken, kunt u de fout in een aparte thread gooien, een die is gemaakt met setTimeout. Vandaar mijn oplossing (die een uitwerking blijkt te zijn van die van 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');

Ik neem de tijd op in milliseconden sinds de starttijd, omdat de time-out de volgorde kan vertekenen waarin je de berichten zou verwachten.

Het tweede argument voor de Error-methode is voor de bestandsnaam, wat hier een lege string is om uitvoer van de nutteloze bestandsnaam en regelnummer te voorkomen. Het is mogelijk om de oproepfunctie te krijgen, maar niet op een eenvoudige browseronafhankelijke manier.

Het zou leuk zijn als we het bericht konden weergeven met een waarschuwings- of berichtpictogram in plaats van het foutpictogram, maar ik kan geen manier vinden om dat te doen.

Een ander probleem met het gebruik van de worp is dat deze kan worden gevangen en weggegooid door een omsluitende try-catch, en door de worp in een aparte draad te plaatsen, wordt dat obstakel ook vermeden. Er is echter nog een andere manier waarop de fout kan worden opgevangen, namelijk als de handler window.onerror wordt vervangen door een die iets anders doet. Kan je daar niet helpen.


Antwoord 6, autoriteit 3%

Als je Safarigebruikt, kun je schrijven

console.log("your message here");

en het verschijnt direct op de console van de browser.


Antwoord 7, autoriteit 2%

Om de vraag daadwerkelijk te beantwoorden:

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

In plaats van fouten kun je ook info, log of waarschuwing gebruiken.


Antwoord 8, autoriteit 2%

Als je Firebuggebruikt en ook IE, Safari of Opera moet ondersteunen, Firebug Litevoegt console.log()-ondersteuning toe aan deze browsers.


Antwoord 9

De WebKitWeb Inspector ondersteunt ook Firebug’sconsole-API (slechts een kleine toevoeging aan Dans antwoord).


10

Zoals altijd, Internet & Nbsp; Explorer is de grote olifant in rollerskates die u stopt met het gewoon gebruiken van console.log().

jQuery’s log kan vrij gemakkelijk worden aangepast, maar is een pijn het overal toevoegen. Eén oplossing Als u JQuery gebruikt, is het aan het einde in uw jQuery-bestand in uw jQuery-bestand te plaatsen:

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;
    }
}

11

Bezoek https://developer.chrome.com/devtools/docs/console- API voor een complete console-api-referentie

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

In dit geval is object uw foutreeks


12

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

13

console.log("your message here");

Werken voor mij .. Ik ben op zoek naar dit .. Ik heb Firefox gebruikt.
Hier is mijn script.

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

Werkt in Firefox en Chrome.


14

De eenvoudigste manier om dit te doen is:

console.warn("Text to print on console");

15

Om uw vraag te beantwoorden, kunt u ES6-functies gebruiken,

var var=10;
console.log(`var=${var}`);

16

Hiermee wordt niet afgedrukt naar de console, maar opent u een alert pop-up met uw bericht dat handig kan zijn voor een foutopsporing:

Doe gewoon:

alert("message");

17

Met de es6-syntaxis kunt u het volgende gebruiken:

console.log(`x = ${x}`);

Other episodes