Skip to main content

A multiprocessing-safe logging system with Rich support.

Project description

logging-mp

🧰 一个支持多进程、带有 Rich 彩色输出的日志系统(multiprocessing-safe logging system with Rich support)

logging-mp 是一个轻量级的 Python 日志工具,解决了在多进程环境下日志错乱、丢失、顺序混乱等问题,并支持漂亮的终端输出(基于 rich)。


🚀 特性 Features

  • 多进程安全:使用 multiprocessing.QueueQueueHandler 实现
  • 独立日志监听进程:避免主进程阻塞
  • 彩色终端输出:集成 rich.logging.RichHandler
  • 支持动态日志等级设置:兼容 logging.DEBUG/INFO/WARNING/...
  • 简单易用:无需复杂配置,一行代码启动

📦 安装 Installation

pip install logging-mp

或克隆本仓库:

git clone https://github.com/silencht/logging-mp.git
cd logging-mp
pip install .

🛠️ 使用方法 Usage

from multiprocessing import Process
from logging_mp import logging_mp

def worker(name, level=None):
    # 如果没有设置 level,就使用全局默认等级
    logger = logging_mp.get_logger(name, level=level)

    logger.debug(f"[{name}] debug —— 调试细节")
    logger.info(f"[{name}] info —— 普通信息")
    logger.warning(f"[{name}] warning —— 警告但可以运行")
    logger.error(f"[{name}] error —— 出错但还能撑住")
    logger.critical(f"[{name}] critical —— 严重错误可能导致崩溃")

if __name__ == "__main__":
    # 全局默认等级:INFO(即不显示 debug)
    logging_mp.basic_config(level=logging_mp.INFO)

    main_logger = logging_mp.get_logger("main")
    main_logger.info("主进程启动")

    # 启动多个子进程:
    # 👉 worker-A:不设置等级,使用全局 INFO
    # 👉 worker-B:设置为 DEBUG,打印全部
    # 👉 worker-C:设置为 WARNING,只显示 warning 及以上
    # 👉 worker-D:不设置等级,也服从全局 INFO
    processes = [
        Process(target=worker, args=("worker-A",)),                        # 使用全局等级 INFO
        Process(target=worker, args=("worker-B", logging_mp.DEBUG)),       # 单独设置为 DEBUG
        Process(target=worker, args=("worker-C", logging_mp.WARNING)),     # 单独设置为 WARNING
        Process(target=worker, args=("worker-D",)),                        # 使用全局等级 INFO
    ]

    for p in processes:
        p.start()
    for p in processes:
        p.join()

    main_logger.info("主进程结束")

📄 License

本项目采用 MIT License。

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

logging_mp-0.1.0.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

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

logging_mp-0.1.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file logging_mp-0.1.0.tar.gz.

File metadata

  • Download URL: logging_mp-0.1.0.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.19

File hashes

Hashes for logging_mp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 16624c928973b75b91f714c09224882b73fb54840e9ecfad34d8307c63dd75af
MD5 7eddd9178415c4421084797380ed04df
BLAKE2b-256 57bd0d30fd3021895bf0e44bb603056ca4a67f899e48c383315fe9a9391cd029

See more details on using hashes here.

File details

Details for the file logging_mp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: logging_mp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.19

File hashes

Hashes for logging_mp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc13290cf2874e616b544b3adf7a86330f07d57afb4a5196beb627d669ad72c7
MD5 dcbf43f6e8a116388b200fdc55ccf3f5
BLAKE2b-256 ac7da3d8702272594dd66198ab7e54d6b525c96ecb02bfe2526c0dc2ac0964f0

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