現在、python プロジェクトに取り組んでおり、構成ファイルを使用してログを設定しています。それはすでに機能しており、メッセージを必要に応じてログに記録していました。
しかし、いくつかのパッケージとモジュールを再配置した後、重要なエラーのみが発生します。
完全なトレースバック:
Traceback (most recent call last):
File "/Volumes/Daten/Eclipse/workspace/Carputer/src/pyboard/__init__.py", line 42, in <module>
logging.config.fileConfig('../logging.conf', disable_existing_loggers=False)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/logging/config.py", line 70, in fileConfig
formatters = _create_formatters(cp)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/logging/config.py", line 103, in _create_formatters
flist = cp["formatters"]["keys"]
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/configparser.py", line 937, in __getitem__
raise KeyError(key)
KeyError: 'formatters'
ここに私のログファイルがあります:
[loggers]
keys=root,pyBoard
[handlers]
keys=consoleHandler
[formatters]
keys=detailedFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_pyBoard]
level=DEBUG
handlers=consoleHandler
qualname=pyBoard
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=detailedFormatter
args=(sys.stdout,)
[formatter_detailedFormatter]
format=%(asctime)s - %(name)s - %(levelname)s : Line %(lineno)s - %(message)s
datefmt=
そして関連するコード:
if __name__ == '__main__':
logging.config.fileConfig('../logging.conf', disable_existing_loggers=False)
logger = logging.getLogger(__name__)
obc = Onboard_computer('/dev/ttys001')
obc.run()
Python Logging Tutorialとほぼ同じです。なぜそれが機能せず、気が狂ってしまうのか、私には本当にわかりません。コードもセットアップも何も変更せず、動作を停止し、Python がこの KeyError をスローします。
私のセットアップ: Mac OS X 10.9.2、PyDev および Python 3.3 を備えた Eclipse Kepler。また、Raspbian Wheezy と Python 3.2 を使用した Raspberry Pi と、Python 2.7 を使用した Eclipse でもテストしました (同じエラー)。
どなたか心当たりのある方はいらっしゃいませんか?