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

Python日志格式化中如何将多个日志值整体左/右对齐?

Python日志多字段整体对齐的解决办法

用str.format风格格式(更便捷)

Python 3.2及以上版本的日志模块支持str.format语法,直接把三个字段拼接后指定对齐宽度即可:

import logging

logging.basicConfig(
    format="{levelname:<8} {module}:{funcName}::{lineno:<100} {message}",
    style="{",
    level=logging.INFO
)

def test_log():
    logging.info("测试日志内容")

test_log()

这里{module}:{funcName}::{lineno:<100}会将三个字段作为整体左对齐到100字符宽度,模块、函数名和行号之间不会出现多余空格。

老式%格式的替代方案

如果习惯使用老式%格式,需要先手动拼接三个字段,再传入日志格式中(日志模块不支持在%占位符里嵌套组合字段):

import logging
import inspect

logging.basicConfig(
    format="%(levelname)-8s %-100s %(message)",
    level=logging.INFO
)

def test_log():
    # 手动拼接模块、函数名、行号为一个字符串
    combined_info = f"{__name__}:{test_log.__name__}::{inspect.currentframe().f_lineno}"
    logging.info("%s 这是测试日志", combined_info)

原写法无效的原因

老式%格式的日志占位符只能识别单个%()内的字段名,无法嵌套%()语法,所以%(%(module)s:%(funcName)s::%(lineno)s)-100s这种写法会被日志模块判定为无效语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:20:33