Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python日志文件配置键错误:';格式化程序&x27;_Python_Eclipse_Logging_Keyerror - Fatal编程技术网

Python日志文件配置键错误:';格式化程序&x27;

Python日志文件配置键错误:';格式化程序&x27;,python,eclipse,logging,keyerror,Python,Eclipse,Logging,Keyerror,我目前正在从事一个python项目,并使用配置文件设置日志记录。它已经起作用了,并根据需要记录了我的消息 但是,在重新排列了一些包和模块之后,我只得到了一个关键错误 完全回溯: Traceback (most recent call last): File "/Volumes/Daten/Eclipse/workspace/Carputer/src/pyboard/__init__.py", line 42, in <module> logging.config.

我目前正在从事一个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'
及有关守则:

if __name__ == '__main__':

    logging.config.fileConfig('../logging.conf', disable_existing_loggers=False)
    logger = logging.getLogger(__name__)

    obc = Onboard_computer('/dev/ttys001')
    obc.run()
这几乎与从一开始的情况相同。 我真的不明白为什么它不起作用,它会让人发疯。它成功了,我对代码和设置都没有做任何更改,它只是停止了工作,Python抛出了这个关键错误

我的设置:MacOSX10.9.2,EclipseKepler与PyDev和Python3.3。我还使用Raspbian Wheezy和Python3.2在Raspberry Pi上测试了它,并在Eclipse中使用Python2.7测试了它(相同的错误)

你们当中有人有线索吗?

试着替换一下

logging.config.fileConfig('../logging.conf', disable_existing_loggers=False)
用这个

logging.config.fileConfig('logging.conf', disable_existing_loggers=False)

不确定,但可能您的
logging.conf
位于当前的工作目录中,使用
无法找到该文件。

我遇到此问题,因为Python无法找到我的配置文件,尽管您从错误消息中永远不会知道它。显然,它不会查找与运行代码的文件相关的配置文件,而是查找与当前工作目录相关的配置文件(您可以从
os.getcwd()
)。我使用以下代码初始化记录器。
log.config
文件与运行此代码的文件位于同一目录中:

from os import path
log_file_path = path.join(path.dirname(path.abspath(__file__)), 'log.config')
logging.config.fileConfig(log_file_path)
d512是正确的。 在运行代码时,基于PYTHONPATH,Python将项目根目录视为“当前路径”,而不管运行文件位于何处。因此,另一种方法是添加相对路径,如下所示:

logging.config.fileConfig('root_path_of_project/.../logging.conf')
或相对于当前文件:

LOGGING_CONFIG = Path(__file__).parent / 'logging.conf'
...
logging.config.fileConfig(LOGGING_CONFIG)

希望对我有帮助

在我尝试在Docker容器上运行flask应用程序时,出现了此错误

帮助我的是补充:

flask db init

进入在容器创建开始时运行的boot.sh。

错误表明它正在查找另一个文件
logging.config.fileConfig('../logging.ini',disable_existing\u loggers=False)
它正在查找一个以
.ini
结尾的文件,因为您的代码有一个以
.conf
结尾的文件,对不起。。。我刚刚安装了PyCharm,并在那里使用相同的Python3.3.5安装进行了测试。而且:它有效!有什么想法吗?嗨,莫里茨,你解决了这个问题吗?我目前在尝试通过登录RPi运行应用程序时遇到了相同的问题。嗨,不,这不是问题所在。路径是正确的,当我改变它时,我得到一个错误,它是错误的路径。无论如何,谢谢。还要检查日志配置文件是否确实存在于您认为存在的位置。是的,错误消息是无用的。多亏了@d512和@hughes,我的清单文件中缺少了
include path/to/logging.ini
,因此我的程序包中没有包含该文件!它在我本地的机器上工作,但在部署到AWS Lambda后就死掉了!谢谢,就这样。您的回答:)。我能够指定一个相对路径,并且它起了作用。仅适用于使用Microsoft Python扩展的VS代码的用户:无论您的类或脚本位于何处,默认的当前工作目录都是您工作区的顶部文件夹。这很漂亮,无论我尝试了什么,它都无法找到正确的路径。这很有魅力。
flask db init