Comment puis-je éteindre la connexion de la console dans App Engine Channel API?

J'ai implémenté l'API Channel avec la persistance. Lorsque je fais un canal et que je connecte le socket (c'est sur l'application réelle, et non le dev_appserver local), Firebug devient nuisible avec les messages de journal. Je souhaite les désactiver afin que je puisse voir mes propres journaux, mais je ne trouve aucune documentation sur la façon de désactiver la journalisation de la console de l'API Channel.

Une chose que je fais probablement autrement que la plupart, c'est que je suis en train de connecter des domaines interdits … que l'API Channel Appuie (notez le premier message dans le flux … si vous pouvez voir cette image)

Entrez la description de l'image ici

Est-ce que quelqu'un sait?


METTRE À JOUR

J'ai finalement compris que mon code créait deux canaux et essayait d'ouvrir / relier les deux en même temps … et c'est pourquoi j'avais une quantité de messages. Je ne voulais pas le faire (je connais les règles: https://developers.google.com/appengine/docs/python/channel/overview#Caveats ) … c'était un bug … et une fois que j'ai réparé Les messages sont retournés à un niveau gérable.

Yay

Il ne semble pas y avoir de moyen d'arrêter le journal TimeStamp Firebug. Une façon de résoudre ce problème est de modifier le code et de supprimer cette fonctionnalité vous-même:

Déballez l'extension dans un répertoire dans votre profil Mozilla Firefox:

Modifiez le répertoire dans votre répertoire des extensions de profil Firefox. Sur Ubuntu, ceci serait quelque chose comme ceci:

cd ~/.mozilla/firefox/{random-string}/extensions/ 

L'extension Firebug est identifiée par [email protected] . Créez un nouveau répertoire du même nom, mais sans le .xpi, et déplacez le XPI dans ce répertoire:

 mkdir [email protected] mv [email protected] [email protected] 

Ensuite, modifiez les répertoires dans votre répertoire Firebug nouvellement créé et décompressez l'extension:

 cd [email protected] unzip [email protected] 

Tous les fichiers doivent être décompressés afin que les répertoires de l'extension se trouvent dans le répertoire actuel. Votre structure de fichier ressemblera à ceci:

 $: ~/.mozilla/firefox/{random-string}/extensions/[email protected]$ l chrome.manifest defaults/ [email protected] install.rdf locale/ skin/ content/ docs/ icons/ license.txt modules/ 

$: ~/.mozilla/firefox/ghlfe0bb.ff5.0/extensions/[email protected]$

Ouvrez consoleExposed.js dans votre éditeur de texte:

Ensuite, content/firebug/console répertoire content/firebug/console :

 cd content/firebug/console 

Modifiez le fichier consoleExposed.js à l'aide de votre éditeur préféré:

 vim consoleExposed.js 

Désactiver console.timeStamp:

Sur ou près de la ligne 215, vous verrez la fonction suivante:

 console.timeStamp = function(label) { label = label || ""; if (FBTrace.DBG_CONSOLE) FBTrace.sysout("consoleExposed.timeStamp; " + label); var now = new Date(); Firebug.NetMonitor.addTimeStamp(context, now.getTime(), label); var formattedTime = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + "." + now.getMilliseconds(); return logFormatted([formattedTime, label], "timeStamp"); }; 

Juste après la première bretelle, forcez la fonction à ne rien renvoyer:

 console.timeStamp = function(label) { return ; // disable timestamp by returning label = label || ""; if (FBTrace.DBG_CONSOLE) 

Redémarrez Firefox et profitez d'un monde sans timeStamp:

Après les modifications, redémarrez Firebug. Vous ne devriez plus voir les messages de journal pour TimeStamp dans votre console.

Sur le serveur de développement, lors de l'utilisation de ChannelAPI, il se dégrade essentiellement dans une implémentation de vote au lieu d'utiliser Comet / long-polling. Ainsi, dans votre débogueur, vous voyez un flux sans fin de requêtes HTTP effectuées sur le serveur pour vérifier en permanence et méthodiquement les mises à jour.

Essentiellement, ce ne sont que des demandes AJAX, ou comme Firebug voudrait les penser, XMLHttpRequests.

Étant donné que votre navigateur est responsable de la réalisation de ces demandes, la seule façon de les désactiver est de cliquer sur la petite flèche sur "Console" dans Firebug et de décochez l'option pour ouvrir la session XMLHttpRequests.

Décocher XmlHttpRequest Se connecter à Firebug

Bien sûr, cela désactive également la journalisation de toutes vos autres demandes XMLHttp. Mais c'est un petit prix à payer pour la clarté et la sérénité d'une console JavaScript silencieuse et bien tenue.

Pour plus d'informations utiles sur la façon de tirer le meilleur parti de Firebug, consultez les astuces et astuces Firebug .

REMARQUE: cela fonctionne pour les utilisateurs du SDK Python ainsi que le SDK Java. (Ou Go SDK, en supposant qu'il possède un ChannelAPI équivalent). Ceci ne se limite pas à Python Appengine.

METTRE À JOUR:

De getFirebug :

Crée un horodatage, qui peut être utilisé avec le timing de trafic HTTP pour mesurer lorsqu'un certain code a été exécuté.

La méthode console.timeStamp a été diffusée dans Firebug 1.8.0. La même technique décrite ci-dessus peut également remplacer cette méthode de journalisation Firebug.

 console.timeStamp("This is the type of console logging statement that Google is using!"); 

L'instruction de journalisation ci-dessus produirait le texte d'olive. Cette méthode peut être désactivée en utilisant les mêmes techniques décrites dans la section précédente.

Cependant, Google charge l'objet de console à l'intérieur d'une fermeture, ce qui signifie que, une fois que le code de Google est initialisé, l'objet ChannelAPI possède sa propre copie de l'objet console.

Afin de désactiver console.timeStamp, il faudrait le désactiver comme la première action avant toute autre chose à charger ou à exécuter. En d'autres termes, nous devrions nous assurer que Google n'accepte que les mains sur la méthode disabled console.timeStamp.

Pour de meilleurs résultats, chargez ce code au-dessus de la balise de script / _ah / channel / jsapi pour vous assurer que la méthode console.timeStamp est désactivée avant que jsapi ne charge:

 if(window.console) console.timeStamp = function(t) { }; 

REMARQUE: Parce que Google invoque l'enregistrement Firebug de cette manière, la seule solution peut très bien nécessiter un rapport de bogue ou une requête de fonctionnalité qui permettrait de désactiver par programme ce niveau de journalisation. Alternativement, l'équipe Firebug pourrait fournir une nouvelle version de Firebug qui inclut la possibilité de désactiver explicitement les déclarations de journal TimeStamp, de la manière dont elles l'ont fait avec Errors, Warnings, XMLHttpRequests et d'autres niveaux de journal.