Gibt es eine Möglichkeit, alle console.log
Anweisungen in meinem JavaScript-Code zu Testzwecken?
Antworten
Zu viele Anzeigen?Ich habe das Folgende verwendet, um das Problem zu lösen: -
var debug = 1;
var logger = function(a,b){ if ( debug == 1 ) console.log(a, b || "");};
Setzen Sie debug auf 1, um die Fehlersuche zu aktivieren. Verwenden Sie dann die Logger-Funktion für die Ausgabe von Debug-Text. Sie ist auch so eingerichtet, dass sie zwei Parameter akzeptiert.
Also, statt
console.log("my","log");
verwenden.
logger("my","log");
Meine umfassende Lösung zur Deaktivierung/Aufhebung aller console.*
Funktionen ist aquí .
Achten Sie natürlich darauf, dass Sie sie erst nach Prüfung des erforderlichen Kontexts einfügen. Zum Beispiel, dass es nur in die Produktionsversion aufgenommen wird, dass es keine anderen wichtigen Komponenten bombardiert usw.
Ich zitiere sie hier:
"use strict";
(() => {
var console = (window.console = window.console || {});
[
"assert", "clear", "count", "debug", "dir", "dirxml",
"error", "exception", "group", "groupCollapsed", "groupEnd",
"info", "log", "markTimeline", "profile", "profileEnd", "table",
"time", "timeEnd", "timeStamp", "trace", "warn"
].forEach(method => {
console[method] = () => {};
});
console.log("This message shouldn't be visible in console log");
})();
Warnung: Schamlose Werbung!
Sie könnten auch so etwas wie mein JsTrace-Objekt verwenden, um eine modulare Ablaufverfolgung mit der Möglichkeit des "Umschaltens" auf Modulebene zu haben, um nur das einzuschalten, was Sie gerade sehen wollen.
(Hat auch ein NuGet-Paket, für diejenigen, die es interessiert)
Alle Stufen sind standardmäßig auf "Fehler" eingestellt, Sie können sie aber auch ausschalten. Allerdings kann ich mir nicht vorstellen, warum man Fehler NICHT sehen möchte
Sie können sie auf diese Weise ändern:
Trace.traceLevel('ModuleName1', Trace.Levels.log);
Trace.traceLevel('ModuleName2', Trace.Levels.info);
Weitere Dokumente finden Sie unter die Dokumentation
T
Ich habe eine Bibliothek für diesen Anwendungsfall entwickelt: https://github.com/sunnykgupta/jsLogger
Merkmale:
- Sie setzt die console.log sicher außer Kraft.
- Kümmert sich darum, wenn die Konsole nicht verfügbar ist (oh ja, auch das müssen Sie berücksichtigen).
- Speichert alle Protokolle (auch wenn sie unterdrückt sind) zum späteren Abruf.
- Erledigt wichtige Konsolenfunktionen wie
log
,warn
,error
,info
.
Ist offen für Änderungen und wird aktualisiert, sobald neue Vorschläge auftauchen.