You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python logging模块运行代码报KeyError: 'actime'错误求助

问题原因
  • 核心报错触发原因是logging.basicConfig的format参数内的时间字段拼写错误:你填写的%(actime)s不符合logging模块的内置字段规范,正确的日志时间字段名为%(asctime)s,日志记录对象不存在actime属性,因此直接触发KeyError。
  • 从报错路径可以看出你使用的是Spyder编辑器,这类复用Python内核的工具会残留之前的logging配置,就算第一次修改完拼写重新运行,也可能因为旧配置没清除导致basicConfig不生效。
修正后的可运行代码
import logging
# Spyder/Jupyter等内核复用环境需先加下面两行清除残留配置
for handler in logging.root.handlers[:]:
    logging.root.removeHandler(handler)

# 把actime改为asctime即可匹配预期输出格式
logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s - %(levelname)s - %(message)s')

logging.debug('Start of Program')

def factorial(n):
    logging.debug('start of factorial(%s)' % (n))
    total = 1
    # 你已明确阶乘函数是故意写错的,此处逻辑保留未修改
    for i in range(n + 1):
        total *= i
        logging.debug('i is ' + str(i) + ', total is ' +str(total))
    logging.debug('end of factorial(%s)' % (n))
    return total

print(factorial(5))
logging.debug('end of program')
补充说明

原代码中打日志的格式化字符串多写了多余的%%,如果不需要在日志中输出百分号可以直接删除,避免生成的日志内容出现冗余符号。修改后运行即可生成你预期的「日期时间 - DEBUG - 具体日志内容」格式的日志。

内容的提问来源于stack exchange,提问作者johnsmith_228

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:27:04