跳到内容

invalid-get-logger-argument (LOG002)

源自 flake8-logging 代码检查器。

有时提供修复。

作用

检查是否使用了 __cached____file__ 作为 logging.getLogger() 的参数。

为什么这不好?

日志记录文档 推荐使用以下模式

logging.getLogger(__name__)

此处,__name__ 是完全限定的模块名,例如 foo.bar,这是记录器名称的预期格式。

此规则检测到可能错误的类似模块级双下划线常量的用法

  • __cached__ - 模块的编译版本的路径名,例如 foo/__pycache__/bar.cpython-311.pyc
  • __file__ - 模块的路径名,例如 foo/bar.py

示例

import logging

logger = logging.getLogger(__file__)

建议改为

import logging

logger = logging.getLogger(__name__)

修复安全性

此修复始终是不安全的,因为更改 getLogger 的参数会更改收到的记录器对象,从而改变程序行为。