2017-07-11 7 views
0

J'ai une application wxPython qui, lorsqu'il exécute un avertissement critique crache sur GTK stderr:Capturez les avertissements GTk avec le module d'enregistrement normal.

(raiju:27221): Gtk-CRITICAL **: IA__gtk_widget_set_size_request: assertion 'width >= -1' failed 

De la lecture autour de lui, il semble que cet avertissement est sûr de ne pas tenir compte. Je voudrais néanmoins l'enregistrer en utilisant le module de journalisation normal de Python.

Comment puis-je faire cela?

Notez que j'utilise Phoenix et Python 3.

Répondre

2

Je pense que vous aurez besoin de construire vous-même wxPython avec le débogage désactivé. J'ai demandé à Robin Dunn, créateur de wxPython à ce sujet et il a dit qu'il peut y avoir une variable d'environnement que vous pouvez définir pour supprimer la sortie sur le côté GTK, mais il ne savait pas ce qu'il était hors ligne.

Ces messages sont dirigés vers le handle stderr du runtime C, pas celui de Python, donc vous ne pouvez pas les rediriger à l'aide de sys.stderr de Python.

J'ai essayé de trouver un moyen de fermer la poignée de fichier ou de la dupliquer, mais je n'ai pas été en mesure de trouver quoi que ce soit sur plusieurs plates-formes.