Skip to main content

功能强大的 Python 彩色日志工具,支持结构化日志记录,类似 Go Zap 的字段式日志,支持纯文本和 JSON 格式输出

Project description

ColorInfo 🌈

一个功能强大的 Python 彩色日志工具,支持结构化日志记录

📊 项目状态

PyPI 版本 PyPI 下载量 Python 版本 许可证 代码大小 最后提交

🎯 核心特性

结构化日志 彩色输出 JSON格式 Go Zap风格 中文文档

✨ 主要特性

  • 🎨 彩色输出 - 终端彩色日志显示
  • 📝 结构化日志 - 类似 Go Zap 的字段式日志记录
  • 🌐 多格式支持 - 纯文本和 JSON 格式输出
  • 🔧 使用简单 - 简洁的 API 设计
  • 🎯 中文注释 - 完整的中文文档和注释
  • 🐍 版本兼容 - 支持全部 Python3 版本 (>=3.0)
  • 📊 参数灵活 - 支持传入多个参数,无需格式化
  • 🔍 智能定位 - 自动显示调用文件和行号信息

📦 安装教程

快速安装

pip3 install --upgrade ColorInfo-liumou-Stable

开发安装

git clone https://gitee.com/liumou_site/ColorInfo.git
cd ColorInfo
pip3 install -e .

验证安装

# 测试安装是否成功
from ColorInfo_liumou_Stable import ColorLogger, sugar, JSONStructuredLogger
print("✅ ColorInfo 安装成功!")

🚀 快速开始

基础使用

from ColorInfo_liumou_Stable import ColorLogger, logger

# 创建日志记录器
log = ColorLogger(txt=True, fileinfo=True, basename=False)

# 记录不同级别的日志
log.info('信息消息')
log.error('错误消息')
log.debug('调试消息')
log.warning('警告消息')

结构化日志(类似 Go Zap)

from ColorInfo_liumou_Stable import ColorLogger, sugar, JSONStructuredLogger

# 创建结构化日志记录器
structured_log = sugar(ColorLogger(txt=True, fileinfo=True, basename=False))

# 字段式日志记录

structured_log.info('用户登录', user_id=12345, username='admin', ip='192.168.1.1')
structured_log.error('数据库连接失败', error='ConnectionRefused', host='localhost', port=3306)
structured_log.debug('API 调用', endpoint='/api/users', method='GET', status=200, duration=45.2)
structured_log.warning('内存使用率高', usage_percent=85.3, threshold=80, service='web-server')

# JSON 格式结构化日志

json_log = JSONStructuredLogger(ColorLogger(txt=True, fileinfo=True, basename=False))
json_log.info('订单处理', order_id='ORD-2024-001', amount=99.99, customer='张三')

📋 完整示例

传统日志方式

from ColorInfo_liumou_Stable import ColorLogger, logger

def demos():
    log = ColorLogger(txt=True, fileinfo=True, basename=False)
    log.info(msg='1', x="23")
    log.error('2', '22', '222')
    log.debug('3', '21')
    log.warning('4', '20', 22)

class Demo:
    def __init__(self):
        self.logger = logger
        self.logger.info("初始化")

    def de(self):
        self.logger.debug("de1")
        logger.info("de2")
        logger.warning("de3")
        logger.error("de4")

if __name__ == "__main__":
    d = Demo()
    d.de()
    demos()

结构化日志改进

from ColorInfo-liumou-Stable import ColorLogger, sugar

def improved_logging():
    # 使用结构化日志改进传统调用
    structured_log = sugar(ColorLogger(txt=True, fileinfo=True, basename=False))
    
    # 更清晰的字段表达
    structured_log.info('1', x="23")
    
    # 为参数添加明确的字段名
    structured_log.error('2', code='22', message='222')
    
    # 为调试信息添加上下文
    structured_log.debug('3', value='21')
    
    # 为警告参数添加描述性字段名
    structured_log.warning('4', min_value='20', max_value=22)

🎨 输出效果

控制台输出

日志会在控制台显示彩色输出,包含时间、文件名、行号、类名、函数名和日志内容。

文件输出

同时支持将日志写入文件,包含完整的结构化信息:

2025-12-07 14:38:48 demo.py line: 17 Function: demos INFO : 1 x=23
2025-12-07 14:38:48 demo.py line: 18 Function: demos ERROR : 2 22 222
2025-12-07 14:38:48 structured.py line: 93 Class: StructuredLogger Function: info INFO : 用户登录 user_id=12345 username=admin ip=192.168.1.1
2025-12-07 14:38:48 structured.py line: 115 Class: StructuredLogger Function: error ERROR : 数据库连接失败 error=ConnectionRefused host=localhost port=3306

JSON 格式输出

{"message":"订单处理","timestamp":"2025-12-07T14:38:48.928281","fields":{"order_id":"ORD-2024-001","amount":99.99,"customer":"张三"}}
{"message":"支付失败","timestamp":"2025-12-07T14:38:48.928571","fields":{"error_code":"PAY_001","transaction_id":"TXN-123456"}}

🛠️ API 参考

ColorLogger 类

  • info(msg, *args) - 记录信息级别日志

  • error(msg, *args) - 记录错误级别日志

  • debug(msg, *args) - 记录调试级别日志

  • warning(msg, *args) - 记录警告级别日志

结构化日志类

  • StructuredLogger(base_logger) - 字段式结构化日志

  • JSONStructuredLogger(base_logger) - JSON 格式结构化日志

  • sugar(logger) - 将普通日志转换为结构化日志

🔗 项目链接

📸 效果截图

请在 Gitee 项目主页查看详细的彩色日志效果图片

logg.png

📄 许可证

本项目采用开源许可证,详见项目仓库


ColorInfo - 让 Python 日志记录变得简单而强大!🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

colorinfo_liumou_stable-2.0.1.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

colorinfo_liumou_stable-2.0.1-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file colorinfo_liumou_stable-2.0.1.tar.gz.

File metadata

  • Download URL: colorinfo_liumou_stable-2.0.1.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for colorinfo_liumou_stable-2.0.1.tar.gz
Algorithm Hash digest
SHA256 0aafe5c853e303ed7edf21783a76dbc8dc2d09b5eee2e86ce068d7d830dfdab5
MD5 b61d0426cb9a8ee4796f4c478eb66212
BLAKE2b-256 f82bacace2c66a9c90a17f53a36bd64ffb81cd1ae3d9149d3d02c2e6c9910e71

See more details on using hashes here.

File details

Details for the file colorinfo_liumou_stable-2.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for colorinfo_liumou_stable-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 04f050225137cae04a49854cd4653e9ff09bf9abf4a9e9c9eafee83f66127ade
MD5 adf4b486311eacd5daac41dcdb1dc5e2
BLAKE2b-256 66cfe9a009ceeeeef2753ff776d864dcfaa1be07289a309cc8a05d9e0c17257c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page