172 votes

Un wrapper approprié pour console.log avec un numéro de ligne correct ?

Je suis en train de développer une application, et je place une commande globale isDebug un interrupteur. Je voudrais envelopper console.log pour une utilisation plus pratique.

//isDebug controls the entire site.
var isDebug = true;

//debug.js
function debug(msg, level){
    var Global = this;
    if(!(Global.isDebug && Global.console && Global.console.log)){
        return;
    }
    level = level||'info';
    Global.console.log(level + ': '+ msg);
}

//main.js
debug('Here is a msg.');

J'obtiens alors ce résultat dans la console de Firefox.

info: Here is a msg.                       debug.js (line 8)

Et si je veux enregistrer avec le numéro de ligne où debug() est appelé, comme info: Here is a msg. main.js (line 2) ?

-1voto

Zuill Points 191

Toutes les solutions proposées ici tournent autour du vrai problème : le débogueur devrait être capable d'ignorer une partie de la pile pour donner des lignes significatives. Le débogueur js de VSCode peut maintenant le faire. Au moment de cette édition, la fonctionnalité est disponible via le nightly build de l'extension js-debug. Voir le lien dans le paragraphe suivant.

I proposé une fonctionnalité pour le débogueur de VSCode ici qui ignore le haut de la pile qui réside dans l'un des éléments suivants skipFiles chemins de fichier de la configuration de lancement. La propriété se trouve dans le fichier launch.json de votre espace de travail vscode. Ainsi, vous pouvez créer un fichier/module responsable de l'habillage de console.log, l'ajouter à l'espace de travail de vscode. skipFiles et le débogueur affichera la ligne qui a appelé dans votre fichier sauté plutôt que console.log lui-même.

Il est dans le nightly build de l'extension js-debug. Il semble qu'il pourrait être dans la prochaine version mineure de Visual Studio Code. J'ai vérifié que cela fonctionne en utilisant le nightly build. Plus de solutions de contournement, yay !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X