Wie kann ich eine Meldung auf der Fehlerkonsole ausgeben, vorzugsweise unter Angabe einer Variablen?
Zum Beispiel so etwas wie:
print('x=%d', x);
Wie kann ich eine Meldung auf der Fehlerkonsole ausgeben, vorzugsweise unter Angabe einer Variablen?
Zum Beispiel so etwas wie:
print('x=%d', x);
Installieren Sie Firebug und dann können Sie console.log(...)
y console.debug(...)
, usw. (siehe die Dokumentation für mehr).
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.
Sie können auch CSS hinzufügen:
console.log('%c My message here', "background: blue; color: white; padding-left:10px;");
Weitere Informationen finden Sie hier: https://developer.mozilla.org/en-US/docs/Web/API/console
Ausnahmen werden in der JavaScript-Konsole protokolliert. Das können Sie nutzen, wenn Sie die Firebug deaktiviert.
function log(msg) {
setTimeout(function() {
throw new Error(msg);
}, 0);
}
Verwendung:
log('Hello World');
log('another message');
Eine gute Möglichkeit, dies browserübergreifend zu tun, wird in Fehlersuche in JavaScript: Werfen Sie Ihre Alerts weg! .
Hier ist eine Lösung für die buchstäbliche Frage, wie man eine Meldung in die Fehlerkonsole des Browsers und nicht in die Debugger-Konsole ausgibt. (Es könnte gute Gründe geben, den Debugger zu umgehen.)
Wie ich in den Kommentaren zu dem Vorschlag, einen Fehler auszulösen, um eine Meldung in der Fehlerkonsole zu erhalten, angemerkt habe, besteht ein Problem darin, dass dadurch der Ausführungsfaden unterbrochen wird. Wenn Sie den Thread nicht unterbrechen wollen, können Sie den Fehler in einem separaten Thread auslösen, der mit setTimeout erstellt wird. Daher meine Lösung (die sich als eine Weiterentwicklung der Lösung von Ivo Danihelka herausstellt):
var startTime = (new Date()).getTime();
function logError(msg)
{
var milliseconds = (new Date()).getTime() - startTime;
window.setTimeout(function () {
throw( new Error(milliseconds + ': ' + msg, "") );
});
}
logError('testing');
Ich gebe die Zeit in Millisekunden seit der Startzeit an, weil die Zeitüberschreitung die Reihenfolge, in der Sie die Meldungen erwarten, verschieben könnte.
Das zweite Argument der Methode Error ist der Dateiname, der hier eine leere Zeichenkette ist, um die Ausgabe des nutzlosen Dateinamens und der Zeilennummer zu verhindern. Es ist möglich, die Aufruferfunktion zu erhalten, aber nicht auf eine einfache, browserunabhängige Weise.
Es wäre schön, wenn wir die Meldung mit einem Warn- oder Nachrichtensymbol anstelle des Fehlersymbols anzeigen könnten, aber ich kann keine Möglichkeit finden, dies zu tun.
Ein weiteres Problem bei der Verwendung von throw ist, dass es von einem umschließenden try-catch abgefangen und weggeworfen werden könnte, und das Ablegen des throw in einem separaten Thread vermeidet auch dieses Hindernis. Es gibt jedoch noch eine weitere Möglichkeit, wie der Fehler abgefangen werden könnte, nämlich wenn der window.onerror-Handler durch einen ersetzt wird, der etwas anderes tut. Da kann ich Ihnen nicht helfen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
9 Stimmen
Von welcher Konsole sprechen Sie? Browser-Konsole oder JavaScript-Framework-spezifische Konsole?
0 Stimmen
Ähnlicher Beitrag - Chrome: console.log, console.debug funktionieren nicht