Python JSON Logger 技术文档
2024-12-25 13:42:52作者:廉皓灿Ida
1. 安装指南
通过Pip安装
pip install python-json-logger
通过PyPI安装
访问 PyPI 下载对应的安装包,然后进行安装。
手动安装
python setup.py install
2. 项目的使用说明
本项目提供了一个可以将标准Python日志输出为JSON对象的库,这样可以使日志更易于被机器阅读,并且不需要编写自定义的解析器来处理日志。
集成Python的日志框架
import logging
from pythonjsonlogger import jsonlogger
logger = logging.getLogger()
logHandler = logging.StreamHandler()
formatter = jsonlogger.JsonFormatter()
logHandler.setFormatter(formatter)
logger.addHandler(logHandler)
自定义字段
可以通过覆盖 JsonFormatter 的 fmt 解析器来定义所需的字段。
class CustomJsonFormatter(jsonlogger.JsonFormatter):
def parse(self):
return self._fmt.split(';')
formatter = CustomJsonFormatter('one;two')
添加额外的字段
可以在日志记录中添加额外的字段,这些字段将添加到日志条目的根级别。
formatter = jsonlogger.JsonFormatter('%(message)s', extra={'user': 'admin'})
logger.info("This is a log message", extra={'user': 'admin'})
自定义对象序列化
可以指定默认的JSON对象翻译器或提供自定义的编码器。
def json_translate(obj):
if isinstance(obj, MyClass):
return {"special": obj.special}
formatter = jsonlogger.JsonFormatter(json_default=json_translate,
json_encoder=json.JSONEncoder)
logHandler.setFormatter(formatter)
使用配置文件
可以使用配置文件来配置日志,配置文件中指定 JsonFormatter。
[loggers]
keys = root,custom
[logger_root]
handlers =
[logger_custom]
level = INFO
handlers = custom
qualname = custom
[handlers]
keys = custom
[handler_custom]
class = StreamHandler
level = INFO
formatter = json
args = (sys.stdout,)
[formatters]
keys = json
[formatter_json]
format = %(message)s
class = pythonjsonlogger.jsonlogger.JsonFormatter
3. 项目API使用文档
具体API使用文档请参考项目在 PyPI 的官方文档。
4. 项目安装方式
请参照上述“安装指南”部分进行安装。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0168
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
BitCPM-CANN-8BBitCPM-CANN 是首个基于华为昇腾 NPU 原生构建的端到端 1.58 位(三值化)大语言模型训练系统。该系统将量化感知训练(QAT)集成到 Megatron-LM 框架中,并结合 MindSpeed 加速,覆盖了从自定义三值算子到基于昇腾 910B 的分布式并行训练的完整训练栈。Python00
MiniCPM5-1BMiniCPM5-1B,这是 MiniCPM5 系列的首款模型。它是一个专为端侧、本地部署和资源受限场景打造的 10 亿参数密集型 Transformer 模型,达到了 10 亿参数级开源模型的 SOTA 水平Jinja00
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0239
项目优选
收起
暂无描述
Dockerfile
744
4.83 K
Ascend Extension for PyTorch
Python
680
820
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
447
407
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.01 K
1.03 K
昇腾LLM分布式训练框架
Python
171
209
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
1.45 K
168
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
147
246
Oohos_react_native
React Native鸿蒙化仓库
C++
351
411
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.1 K
616
暂无简介
Dart
995
255