Skip to main content

An advanced, asynchronous logging system for algorithmic projects.

Project description

zy_log: 一个为算法项目定制的、专业的、异步的日志系统

PyPI Version License: MIT

一个功能强大的 Python 日志包,专为计算密集型和算法项目设计。它通过异步 I/O 确保日志记录不会阻塞您的主计算线程,并使用 rich 提供美观的控制台输出和异常堆栈。

核心功能

  • 异步非阻塞: 所有日志 I/O (文件/控制台) 都在一个单独的后台线程中处理。
  • Rich 集成: 自动的控制台颜色、美观的格式化和清晰的异常堆栈追踪。
  • 动态配置: 可通过参数或环境变量 (LOG_LEVEL) 轻松覆盖配置。
  • 致命错误处理: 提供 logger.error_and_raise() 方法,在记录致命错误后立即抛出异常,实现“快速失败”(Fail-Fast)。

安装

pip install zy_log

快速使用

您只需要在您算法的主入口文件 (main.py) 中初始化一次,然后在任何子模块中调用 get_logger 即可。

1. 初始化 (在 main.py 中)

这是最关键的一步。

# main.py
import zy_log
import os
import time
from your_project import run_my_core_algo

# --- 日志系统初始化 (仅一次) ---
# 推荐:动态指定日志文件名,并设置环境变量
log_filename = f"run_{time.strftime('%Y%m%d_%H%M%S')}.log"
os.environ['LOG_LEVEL'] = 'INFO' # 生产环境
# os.environ['LOG_LEVEL'] = 'DEBUG' # 调试时

zy_log.setup_logging(log_file_override=log_filename)
# --- 初始化完成 ---

# 获取主模块的 logger
logger = zy_log.get_logger(__name__)

logger.info(f"算法启动,日志将记录到: {log_filename}")

# 运行您的核心算法
try:
    run_my_core_algo()
    logger.info("算法运行成功结束。")
except Exception as e:
    logger.critical(f"算法主流程意外崩溃: {e}", exc_info=True)

2. 在任意子模块中使用

在您的任何算法子模块中:

# your_project/core_algo.py
import zy_log
import time

# [关键] 直接获取 logger,它已经被 main.py 配置好了
logger = zy_log.get_logger(__name__)

def run_my_core_algo():
    
    # 1. 记录正常流程 (Normal)
    logger.info("开始加载数据模型...")
    
    # 2. 记录警告 (Warning)
    logger.warning("检测到 5% 的缺失值,将使用均值填充。")
    
    # 3. 记录致命错误 (Error)
    try:
        if "关键数据" is None:
            # 这会记录一个红色的 Error 日志,然后抛出 RuntimeError
            logger.error_and_raise("关键数据为 None,算法无法继续!")
            
    except RuntimeError as e:
        logger.error(f"算法因致命错误中断: {e}")
        raise # 必须重新抛出,让上层知道

贡献

欢迎提交 PR 或 Issue。

许可证

本项目使用 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

zy_log-0.1.1.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

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

zy_log-0.1.1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file zy_log-0.1.1.tar.gz.

File metadata

  • Download URL: zy_log-0.1.1.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for zy_log-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6227a427bcaf551a8e3c82705c7735bd53be158c846439f1a2675776bf4e666f
MD5 5748ea77a866a63a94464353434f62a2
BLAKE2b-256 93fe49e8312094c6f53f51275ff98cd78ae96f82df18a7bc3418753ad212a398

See more details on using hashes here.

File details

Details for the file zy_log-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: zy_log-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for zy_log-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 72a4c48ee7f8c49c3fe4d801bb2cdf55ecc2b83de78c3759fd4b92ba81e8c755
MD5 db31844bb8c07132f8c32288ff1ab577
BLAKE2b-256 d7df078815751a70fdeadd6cd62a31e37fc05e31d97e6d49d357635fd3bd1ae8

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