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.5.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.5-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: logging_mp-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 aa5da3d02a604149791dce206013543b520d11c13230b83a3ea28d96168e0b97
MD5 8ce6b4d02b688eca83357c09d642e45a
BLAKE2b-256 2a6a3c41e7ea470902fc7103bae3af91a3303c1a789369d101948c71102d56e6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: logging_mp-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 3.5 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5ea616115e8849b26324ae3768ef574a0c37a0d8c43428e31304003ba3feb305
MD5 51cbee21d93943eb17b445dc87612aa7
BLAKE2b-256 4d2335a469fb87ed241a38fbb12e5a5ffad95a22827d642cd0643db810aa32ea

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