366 Stimmen

Wie kann ich schnell und bequem alle console.log-Anweisungen in meinem Code deaktivieren?

Gibt es eine Möglichkeit, alle console.log Anweisungen in meinem JavaScript-Code zu Testzwecken?

4voto

Xavier T Mukodi Punkte 95

Zum Deaktivieren console.log nur:

console.log = function() {};

So deaktivieren Sie alle Funktionen, die in die Konsole schreiben:

for (let func in console) {
   console[func] = function() {};
}

3voto

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");

3voto

kmonsoor Punkte 6752

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");
})();

2voto

Tom McKearney Punkte 305

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.

http://jstrace.codeplex.com

(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

2voto

Sunny R Gupta Punkte 4850

Ich habe eine Bibliothek für diesen Anwendungsfall entwickelt: https://github.com/sunnykgupta/jsLogger

Merkmale:

  1. Sie setzt die console.log sicher außer Kraft.
  2. Kümmert sich darum, wenn die Konsole nicht verfügbar ist (oh ja, auch das müssen Sie berücksichtigen).
  3. Speichert alle Protokolle (auch wenn sie unterdrückt sind) zum späteren Abruf.
  4. Erledigt wichtige Konsolenfunktionen wie log , warn , error , info .

Ist offen für Änderungen und wird aktualisiert, sobald neue Vorschläge auftauchen.

CodeJaeger.com

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.

Powered by:

X