【发布时间】:2014-06-03 09:55:07
【问题描述】:
我目前正在开发一个 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 进行了测试(同样的错误)。
你们中有人知道吗?
【问题讨论】:
-
错误提示它正在寻找一个不同的文件
logging.config.fileConfig('../logging.ini', disable_existing_loggers=False)它正在寻找一个以.ini结尾的文件,而您的代码以.conf结尾? -
错字,对不起...我刚刚安装了 PyCharm 并在那里使用相同的 Python 3.3.5 安装对其进行了测试。并且:它有效!有什么想法吗?
-
嗨,莫里茨,您解决了这个问题吗?我目前在尝试通过登录 RPi 来运行我的应用程序时遇到了同样的问题。
标签: python eclipse logging keyerror