Вопрос:

Регистрация Python 3.2 с файлом конфигурации приводит к KeyError: 'formatters' на Raspbian

python logging raspberry-pi python-3.2 keyerror

3653 просмотра

1 ответ

324 Репутация автора

Я снабдил свое приложение Python возможностью ведения журнала, и оно безупречно работает в моей системе Windows с Python 3.4. Но когда я развертываю приложение на своем Raspberry Pi с Raspbian и Python 3.2, я получаю следующую ошибку:

Traceback (most recent call last):
  File "aurora/aurora_websocket.py", line 265, in <module>
    logging.config.fileConfig('logging.conf')
  File "/usr/lib/python3.2/logging/config.py", line 70, in fileConfig
    formatters = _create_formatters(cp)
  File "/usr/lib/python3.2/logging/config.py", line 106, in _create_formatters
    flist = cp["formatters"]["keys"]
  File "/usr/lib/python3.2/configparser.py", line 941, in __getitem__
    raise KeyError(key)
KeyError: 'formatters'

Файл logging.conf (закодированный в UTF-8 без спецификации):

[loggers]
keys=root,simpleExample

[handlers]
keys=screen

[formatters]
keys=simple,complex

[logger_root]
level=NOTSET
handlers=screen

[logger_simpleExample]
level=DEBUG
handlers=screen
qualname=simpleExample
propagate=0

[handler_screen]
class=StreamHandler
level=DEBUG
formatter=complex
args=(sys.stdout,)

[formatter_simple]
format=%(asctime)s - %(levelname)s - %(message)s
datefmt=

[formatter_complex]
format=%(asctime)s - %(levelname)-8s - <%(module)s : %(lineno)d> - %(message)s
datefmt=

Конфигурация регистрации загружается в простой однострочной:

logging.config.fileConfig('logging.conf')

Я в недоумении, поскольку, как уже упоминалось выше, мое приложение отлично работает на Windows, но не работает на RPi.

Автор: Joern Источник Размещён: 30.03.2015 12:48

Ответы (1)


5 плюса

324 Репутация автора

Ну, это продолжалось недолго ... Оказывается, я запускаю свое приложение на RPi из другого рабочего каталога. Следовательно, путь к файлу logging.conf неверно интерпретируется относительно различий в рабочем каталоге. К сожалению, библиотека журналов пытается продолжить работу с несуществующими файлами и в этом случае не выдает полезного исключения.

Автор: Joern Размещён: 30.03.2015 03:24
Вопросы из категории :
32x32