2017-07-18 1 views
0

Quel est le problème avec ce code? Il imprime Whatsup à la stdOut, et rien au fichier dans/tmp. Il crée le fichier, mais rien n'y est jamais écrit, même lors de la consignation de charges de données ('w' * 20000). Et il ne semble pas y avoir aucun gestionnaire spécifié après que je vérifie.logging.config.dictConfig ne semble pas fonctionner

>>> logger.handlers 
[] 
>>> logger.warning("Whatsup") 
Whatsup 
>>> 

import logging 
import logging.config 
import multiprocessing 

import threadfilter 

VERBOSE_LOGGING = 1 
directory = '/tmp/' 



configDict = { 
       'version': 1, 
       'disable_existing_loggers': False, 
       'formatters': { 
        'detailed': { 
         'class': 'logging.Formatter', 
         'format': '%(asctime)s - %(levelname)s =%(threadName)s= - Completer: %(message)s' 
        } 
       }, 
       'handlers': { 
        'fileH': { 
         'class': 'logging.FileHandler', 
         'filename': '%s/ZZZZZZZZZZ_dispatcher_jobComplete3r.log' % (directory), 
         'formatter': 'detailed' 
        } 
       }, 
       'loggers': { 
        'root': { 
         'handlers': ['fileH'], 
         'level': VERBOSE_LOGGING 
        } 
       } 
} 

logging.config.dictConfig(configDict) 
logger = logging.getLogger() 
logger.handlers 
logger.warning("Whatsup") 

Aucune erreur n'est levée non plus, il semble juste ignorer silencieusement ma configuration.

Python 3.6.1

Répondre

0

Publié 2 secondes trop tôt.

J'ai dû appeler explicitement le nom de l'enregistreur racine dans mon appel getLogger. Cela a fait l'affaire:

logging.config.dictConfig(configDict) 
logger = logging.getLogger('root') 
logger.handlers 
logger.warning("Whatsup") 

Désolé!