【问题标题】:Pycharm does not recognize logging.basicConfig handlers argumentPycharm 无法识别 logging.basicConfig 处理程序参数
【发布时间】:2020-07-28 07:06:42
【问题描述】:

我有一个 python 应用程序,它使用 python logging 库已经有一段时间了,用于在屏幕上打印消息和按时旋转文件,并且工作正常。

日志配置如下:

import logging
from logging.handlers import TimedRotatingFileHandler
logging.basicConfig(level=logging.INFO if debug is not True else logging.DEBUG,
                    format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S',
                    handlers=[
                        TimedRotatingFileHandler(log_filename, when='midnight', interval=1),
                        logging.StreamHandler()
                    ]
                    )

我的问题是 PyCharm 不断突出显示配置的 logging.basicConfig 部分并发出以下警告:

意外的参数

可能的被调用者:

basicConfig(*, 文件名: 可选[str]=...,文件模式:str=...,格式:str=...,datefmt: 可选[str]=...,级别:Union[int, str, None]=...,流: IO[str]=...) basicConfig()

检验信息:报告差异 在声明的参数和实际参数之间,以及不正确的 参数(例如重复的命名参数)和不正确的参数 命令。装饰器也被分析。

只有当我删除代码的handlers=[...] 部分时它才会消失。

basicConfig 的参数是否在特定版本上发生了变化?如果是,实现相同目标的建议方法是什么?

我正在使用 python 3.6pycharm 2020.1(但至少在过去 3 次更新中收到相同的警告)

【问题讨论】:

    标签: python python-3.x logging pycharm


    【解决方案1】:

    此问题在 PyCharm 错误跟踪器 https://youtrack.jetbrains.com/issue/PY-39762 上报告。简而言之:Python 3 中 basicConfig 的新关键字参数,如 handler,无法识别。

    该问题还提到了一种解决方法:

    basicConfig 上添加一个插入符号 - 右键单击​​ - 转到 - 声明或用法 - 单击左侧的星号(在排水沟上) - logging/__init__.pyi 应该打开 - 注释全部 basicConfig 定义为 @overload

    我测试了它并且它有效。就我而言,PyCharm 不再抱怨 force=True 参数。

    basicConfig 的参数是否在特定版本上发生了变化?

    您可以随时查看相关文档: https://docs.python.org/3/library/logging.html#logging.basicConfig

    3.2 版更改:添加了样式参数。

    在 3.3 版中更改:添加了 handlers 参数。添加了其他检查以捕获指定不兼容参数的情况(例如,处理程序与流或文件名一起,或流与文件名一起)。

    3.8 版更改:添加了 force 参数。

    【讨论】:

    • 这是正确的解决方案。也适用于 IntellijIDEA。
    【解决方案2】:

    该错误似乎仍未解决。以下解决方案只是抑制错误。

    # noinspection PyArgumentList
    logging.basicConfig(...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 2017-09-10
      • 2013-03-06
      • 2014-05-21
      • 2021-10-09
      相关资源
      最近更新 更多