2014-11-20 5 views
0

у меня есть набор скриптов Python, как приказал:Python регистрации JSON конфигурации для пакетов суб

package1

  • Y.py
  • Z.py

package2

  • log.py

где log.py создает центральную установку для всех вход с:

logging_config_json_file = open(os.path.dirname(os.path.realpath(__file__)) + "/../logging.json") 
parsed_logging_data = json.load(logging_config_json_file) 
logging.config.dictConfig(parsed_logging_data) 


def get_logger(logger_name): 
    return logging.getLogger(logger_name) 

Эта работа, если я получаю лесорубов через package2.log.get_logger (__ name__) вызова.

Но я просто не могу правильно настроить пакеты пакетов1.X и Y в файле logging.json.

Вот простая версия файла JSON:

{ 
    "version": 1, 
    "disable_existing_loggers": 0, 
    "formatters": { 
     "simple": { 
      "format": "%(levelname)s - %(message)s" 
     } 
    }, 

    "handlers": { 
     "console": { 
      "class": "logging.StreamHandler", 
      "level": "DEBUG", 
      "formatter": "simple", 
      "stream": "ext://sys.stdout" 
     } 
    }, 

    "loggers": { 
     "package1.X": { 
      "level": "INFO", 
      "handlers": ["console"], 
      "propagate": 0 
     } 
    }, 

    "root": { 
     "level": "WARN", 
     "handlers": ["console"] 
    } 
} 

Почему не все из package1.X здесь регистрируется на уровне INFO (только предупреждения испускаются)?

ответ

0

Я не знаю много (вроде новичка), но это выглядит, что уровень каскаден root -> logger -> handler или root -> logger -> handler (я не лесорубы пока.

Так что, если вы установите корень к информации вы должны получить:

  • INFO на package1.X
  • DEBUG на все остальное

Как я уже сказал, еще не имеют объяснения (возможно, позже, когда я трачу больше времени на создание каротажа в python)

Смежные вопросы