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

如何在Python logging的levelname后添加冒号再进行填充?

修改日志格式实现级别后带冒号的输出

直接修改日志格式字符串即可实现需求,以下是两种方案:

基础方案(适配固定长度级别)

把原格式中的%(levelname)-9s替换为%(levelname)s: ,让级别名称后紧跟冒号,再补充4个空格(总长度和原格式一致,保证消息对齐):

import logging

logging.basicConfig(
    level=logging.INFO,
    format="%(levelname)s:     %(message)s [%(name)s]",
)
logger = logging.getLogger()
logger.info("Application shutdown complete.")

执行后输出:

INFO:     Application shutdown complete. [root]

通用方案(适配任意长度级别)

如果需要兼容不同长度的日志级别(比如ERROR是5个字符),保证级别部分总宽度一致,可以自定义Formatter类:

import logging

class LevelColonFormatter(logging.Formatter):
    def format(self, record):
        # 将级别名称加冒号后左对齐,总宽度固定为9个字符
        level_part = f"{record.levelname}:".ljust(9)
        return f"{level_part} {record.message} [{record.name}]"

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()

# 移除默认控制台处理器
for handler in logger.handlers[:]:
    logger.removeHandler(handler)

# 添加自定义格式的处理器
console_handler = logging.StreamHandler()
console_handler.setFormatter(LevelColonFormatter())
logger.addHandler(console_handler)

logger.info("Application shutdown complete.")
logger.error("Test error message.")

执行后输出:

INFO:     Application shutdown complete. [root]
ERROR:    Test error message. [root]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:32:47