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

如何修改python json logger输出JSON日志的默认字段键名

修改python-json-logger输出键名的实现方案

直接在初始化JsonFormatter时传入内置的rename_fields参数即可完成键名替换,不需要自定义格式化类,操作成本最低。

rename_fields接收字典类型参数,格式为{"原字段名": "目标新键名"},针对你的需求,只要把要修改的asctime、levelname两个字段的映射加进去就行。

修改后完整代码

import logging
from pythonjsonlogger import jsonlogger

def main() -> None:
    logger = logging.getLogger("myLovelyLogger")
    logger.warning("something terrible happened")

if __name__ == "__main__":
    logger = logging.getLogger("myLovelyLogger")
    handler = logging.StreamHandler()
    handler.setLevel(logging.INFO)

    formatter = jsonlogger.JsonFormatter(
        fmt="%(asctime)s %(name)s %(levelname)s %(message)s",
        datefmt="%d/%m/%y[ %H:%M:%S ]",
        json_indent=4,
        # 新增字段重命名配置
        rename_fields={
            "asctime": "time",
            "levelname": "level"
        }
    )

    handler.setFormatter(formatter)
    logger.addHandler(handler)

    main()

运行输出效果

运行上述代码后,输出的JSON日志完全符合需求:

{
    "time": "29/06/22[ 13:44:55 ]",
    "name": "myLovelyLogger",
    "level": "WARNING",
    "message": "something terrible happened"
}

注:rename_fields是python-json-logger 0.2.0及以上版本原生支持的配置项,后续如果需要修改其他输出键名,直接在该字典中追加对应映射关系即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:15:44