我是新手,所以使用我在网上找到的一个例子来添加一些自定义日志记录级别。这将包含在一个库中,该库将被导入到各种脚本中。它按预期工作,但添加的级别未显示在自动完成列表中(使用 PyCharm),并且 PyCharm 抱怨 LOGGER 中存在未解析的属性引用。当我编码并输入“LOGGER”时。我看到正常的错误、警告、信息等可供选择,但我的自定义级别“详细”不在列表中。随着时间的推移,将会添加更多自定义级别,这也将推出给一个开发团队,所以我需要让这个工作。
知道为什么我的自动完成列表中没有详细选项吗?
这是我的文件。
px_logger.py
from logging import getLoggerClass, addLevelName, setLoggerClass, NOTSET
public class PxLogger(getLoggerClass()):
def __init__(self, name, level=NOTSET):
super(PxLogger, self).__init__(name, level)
addLevelName(5, "VERBOSE")
def verbose(self, msg, *args, **kwargs):
"""Custom logger level - verbose"""
if self.isEnabledFor(5):
self._log(5, msg, args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
my_script.py
import json
import logging.config
from px_logger import PxLogger
logging.setLoggerClass(PxLogger)
LOGGER = logging.getLogger(__name__)
with open('../logging.json') as f: # load logging config file
CONFIG_DICT = json.load(f)
logging.config.dictConfig(CONFIG_DICT)
LOGGER.verbose('Test verbose message')
Run Code Online (Sandbox Code Playgroud)
屏幕输出
VERBOSE - Test verbose message
Run Code Online (Sandbox Code Playgroud)