2011-05-21 4 views
0

J'utilise le module python logging pour générer des fichiers journaux et imprimer la console. J'ai mis en place mon script pour enregistrer tous les niveaux d'erreurs, sans DEBUG dans le fichier. Mais j'ai des problèmes avec le gestionnaire d'installation pour l'impression sur console. Sur la console je veux afficher le niveau INFO et ci-dessous, pas comme setLevel faire. Est-il possible de le faire avec le code inline?Python - Journalisation et niveaux

+0

http://stackoverflow.com/questions/1383254/logging-streamhandler- et-standards-streams pourraient être pleins d'aide. –

Répondre

4

Je ne sais pas exactement ce que vous entendez par "code en ligne", mais vous pouvez y parvenir en utilisant des filtres.

class InfoAndLower(logging.Filter): 
    def filter(self, record): 
     return record.levelno <= logging.INFO 

puis d'attacher une instance de filtre à votre gestionnaire de console.

h = logging.StreamHandler(sys.stdout) 
h.addFilter(InfoAndLower()) 

En Python 3.2 et versions ultérieures, vous n'avez pas besoin de créer une classe - une appelable faire:

h.addFilter(lambda record: record.levelno <= logging.INFO) 
Questions connexes