2013-07-29 5 views
2

Это все Python. Я все еще учился ...Какой модуль должен содержать logging.config.dictConfig (my_dictionary)? Как насчет my_dictionary?

Я написал два модуля для моего приложения Python: Module1 и Module2. Мне нужно отправить результаты регистрации в три разных файла. Module1 отправляет setup.log и setupdetails.log файлам и Module2 отправляет на runall.log Module2 - это приложение, в котором я запускаю. Внутри него есть оператор импорта, который вызывает Module1.

Потому что я настроил свой вход в my_dictionary, какой из модулей должен содержать словарь? Какой из модулей должен содержать функцию logging.config.dictConfig(my_dictionary)?

Знаете ли вы, что я мог бы найти хороший сценарий с примером использования dictConfig?

ответ

2

Итак, я просто наконец понял это.

Все работает хорошо, если положить словарь в дочерний модуль Module 1 (и установить Propagate: True).

MY_DICTIONARY = { 
'version': 1,    
'disable_existing_loggers': False, 
'formatters': { 
    'verbose': { 
     'format': '%(levelname)-8s %(asctime)s %(module)s %(process)d %(thread)d %(message)s', 
     'datefmt': '%a, %d %b %Y %H:%M:%S' 

    }, 
    'standard': { 
     'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s', 
     'datefmt': '%a, %d %b %Y %H:%M:%S' 

    }, 
    'simple': { 
     'format': '%(asctime)s %(levelname)-8s %(message)s', 
     'datefmt': '%a, %d %b %Y %H:%M:%S' 
    } 
#etc. 
} 

}

Далее следуют следующие вызовы:

logging.config.dictConfig(MY_DICTIONARY) 
vmrunalllogger = logging.getLogger('VMRunAll_Python_Logger') 

Затем в модуле 2 (родительский модуль), имеют следующее:

logging.config.dictConfig(MY_DICTIONARY) 
mylogger = logging.getLogger('RunAll_Logger') 

Я не мог найти конкретные примеры, показывающие два разных модуля, регистрирующихся в нескольких файлах, подобных моим, но информация из нескольких источников lik е следующее помогло:

  1. From the Python documentation
  2. Another question on Stackoverflow.com
  3. And the examples of in the cookbook
+0

Является ли 'VMRunAll_Python_Logger' определенным в разделе 'loggers' в config или это просто имя модуля? – TanB

0

Для dictConfig:

import logging.config 
logging.config.dictConfig() #Your method. 

С точки зрения того, что вам нужно сделать, это может быть проще, если вы вывесили некоторые из вашего кода.

Some documentation

An Example

+0

Благодарим Вас за подтверждение на импорт logging.config я попробовал свой код в конце дня прошлой ночью и имел Объект AttributeError: 'module' не имеет атрибута 'config''. То, что вы предложили импортировать, является решением для 'AttributeError'. Что касается примера, я уже видел это. Но спасибо. Позвольте мне вернуться со свежими новостями всего за секунду. – Alain

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