2017-07-18 5 views
0

このコードで何が問題になっていますか?これはstdOutにWhatsupを出力し、/ tmpには何も出力しません。それはファイルを作成しますが、ログにデータがロードされている場合( 'w' * 20000)には書き込まれません。私がチェックした後でもハンドラが指定されていないようです。logging.config.dictConfigは動作していないようです。

>>> 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") 

エラーはスローされません。私の設定を黙って無視しているようです。

Python 3.6.1

答えて

0

投稿日時が早すぎます。

私はgetLogger呼び出しで明示的にルート・ロガーの名前を呼び出す必要がありました。 これはトリックを行いました:

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

大変申し訳ございません。

関連する問題