我目前正在开发一个 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。我还在 Raspberry Pi 上使用 Raspbian Wheezy 和 Python 3.2 以及在 Eclipse 中使用 Python 2.7 进行了测试(同样的错误)。
有没有人有线索?