You need to enable JavaScript to run this app. Python logging模块Formatter触发字符串相减TypeError报错
优惠活动
大模型
产品
解决方案
定价
更多

Python logging模块Formatter触发字符串相减TypeError报错

报错触发原因
  • 代码的语法识别逻辑存在错位:三个日志占位符字符串之间,被放在引号外部的横杠-没有被识别为日志格式的分隔文本,反而被Python解释为两个字符串字面量之间的减法运算符。
  • Python没有定义字符串类型的减法运算规则,当执行到'%(name)s' - '%(levelname)s'的计算环节时,就会直接抛出不支持字符串减法的TypeError,根本无法进入logging.Formatter的初始化流程。
修复方案
  • 日志格式串中,作为分隔符的横杠属于格式字符串的普通文本内容,需要全部收纳在同一个引号内部,不能放在引号外被识别为算术运算符。
  • 调整后的可正常运行代码:
formatter = logging.Formatter('%(name)s-%(levelname)s-%(message)s')
  • 调整后日志输出会按照预期将日志器名称、日志级别、日志消息三个字段用横杠分隔,类似输出效果:root-WARNING-磁盘剩余空间不足,不会再触发类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 04:15:03