J'utilise PyCharm pour développer une application GAE sous Mac OS X. Est-il possible d'afficher des couleurs dans la console d'exécution de PyCharm?
J'ai défini un handler pour afficher les couleurs au format ansi. Ensuite, j'ai ajouté le gestionnaire:
LOG = logging.getLogger()
LOG.setLevel(logging.DEBUG)
for handler in LOG.handlers:
LOG.removeHandler(handler)
LOG.addHandler(ColorHandler())
LOG.info('hello!')
LOG.warning('hello!')
LOG.debug('hello!')
LOG.error('hello!')
Mais la couleur est la même.
MODIFIER:
Une réponse de JetBrains issue tracker : Modifiez la ligne 55 de l'extrait de code de sys.stderr en sys.stdout stderr stream est toujours coloré en rouge alors que stdout pas.
Maintenant, les couleurs sont correctement affichées.
PyCharm ne supporte pas cette fonctionnalité de manière native, cependant vous pouvez télécharger le plugin Grep Console et définir les couleurs à votre guise.
Voici une capture d'écran: http://plugins.jetbrains.com/files/7125/screenshot_14104.png (lien est mort)
J'espère que ça aide un peu :) bien qu'il ne fournisse pas de console entièrement colorisée, mais c'est un pas en avant.
En retard pour le parti, mais pour quiconque ayant ce problème, voici la solution qui a fonctionné pour moi:
import logging
import sys
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
Cela venait de cette réponse
J'ai découvert la solution suivante. Apparemment, Pycharm redirige sys.stdout. Depuis la documentation du module sys :
sys.__stdin__
sys.__stdout__
sys.__stderr__
Ces objets contiennent les valeurs d'origine de stdin, stderr et stdout Au début du programme. Ils sont utilisés lors de la finalisation et Peut être utile pour imprimer dans le flux standard actuel, peu importe si L'objet sys.std * a été redirigé.
Il peut également être utilisé pour restaurer les fichiers dans des objets de fichier de travail connus Au cas où ils auraient été écrasés par un objet endommagé. .____.] flux précédent avant de le remplacer et restaurer l'objet enregistré.
Par conséquent, pour résoudre ce problème, vous pouvez rediriger la sortie vers sys.__stdout__
. Exemple de configuration de mon log_config.yml:
console:
class: logging.StreamHandler
level: DEBUG
stream: "ext://sys.__stdout__"
formatter: colorFormatter
Ce qui a résolu le problème pour moi (sur PyCharm 2017.2) était d'aller à Preferences -> Editor -> Color Scheme -> Console Colors
et de changer la couleur de Console -> Error output
. Bien sûr, cela change aussi la couleur de l'erreur mais au moins, vous ne voyez pas le rouge tout le temps ...