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.2.tar.gz (7.9 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.2-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zy_log-0.1.2.tar.gz
  • Upload date:
  • Size: 7.9 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.2.tar.gz
Algorithm Hash digest
SHA256 a14ed431b581683df18defec0a48be430be52933caeed210b69ba8f5166fe438
MD5 ffe368da83a144c8af3469445b996213
BLAKE2b-256 6c1c56c937173ec035fd707b5f0288c0adf5aa0709af5925a02ce5ce20e0a7cb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zy_log-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.7 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0ded3487dbfc688bfab032bc4ee417e56c7256122861a929bae13137245f0c68
MD5 6c7404df9abf57204c2bbcca37b64bff
BLAKE2b-256 a10f86ce828609854ab2b61df92a295df8e22afa78e18157471d4a4d9daf66f6

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