小编Mus*_*maz的帖子

使用“额外”时记录密钥错误

我有一个简单的日志记录设置:

extra = {'hostname': socket.gethostname(), 'ip': socket.gethostbyname(socket.gethostname()), 'user': getpass.getuser()}


def get_logger():
    logging.basicConfig(
        format='%(asctime)s # %(user)s # %(hostname)s # %(ip)s # %(message)s',
        datefmt='%m/%d/%Y %I:%M:%S')

    crawler_logger = logging.getLogger("crawler")
    crawler_logger.setLevel(logging.INFO)
    crawler_logger = logging.LoggerAdapter(crawler_logger, extra)
    return crawler_logger
Run Code Online (Sandbox Code Playgroud)

我在所有日志中都使用此设置。一些例子:

logger.warning("Harmful URL # Potentially harmful url # %s" % url["url"])

logger.info("URL already exists: %s ", url_dict["url"])

logger.error("ERROR # ERROR while crawling url. %s" % e)
Run Code Online (Sandbox Code Playgroud)

但是,每当我使用的任何库(例如 aiokafka)发生错误时,我的代码都会抛出“记录错误”,其中包含KeyError: 'user',即使 'user' 键存在并在额外字典中赋值。

错误的堆栈跟踪:

--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.6/logging/__init__.py", …
Run Code Online (Sandbox Code Playgroud)

python logging python-3.x

4
推荐指数
1
解决办法
5656
查看次数

标签 统计

logging ×1

python ×1

python-3.x ×1