Skip to main content

A modern colorful logging library for Python with rich context information

Project description

CraneLog 🪵

一个现代化的 Python 彩色日志工具,用于替代原生 logging 模块。

✨ 特性

  • 🎨 彩色输出 - 时间戳、日志级别、文件名、行号等信息使用不同颜色显示
  • 📍 丰富的上下文 - 自动显示文件名、行号、函数名、类名
  • 🔧 简洁 API - 既支持模块级快捷函数,也支持创建独立的 Logger 实例
  • 🎯 零依赖 - 纯 Python 实现,无需安装额外依赖
  • 🖥️ 智能检测 - 自动检测终端是否支持颜色输出

📦 安装

pip install cranelog

或使用 PDM:

pdm add cranelog

🚀 快速开始

基本用法

import cranelog

# 使用模块级函数(最简单的方式)
cranelog.debug("这是一条调试信息")
cranelog.info("这是一条普通信息")
cranelog.warning("这是一条警告信息")
cranelog.error("这是一条错误信息")
cranelog.critical("这是一条严重错误信息")

在函数中使用

import cranelog

def process_data():
    cranelog.info("开始处理数据")
    # ... 处理逻辑
    cranelog.info("数据处理完成")

process_data()
# 输出会自动包含函数名 process_data

在类中使用

import cranelog

class DataProcessor:
    def process(self):
        cranelog.info("类方法中的日志")
        # 输出会包含类名 DataProcessor 和方法名 process

processor = DataProcessor()
processor.process()

创建专用的 Logger 实例

from cranelog import get_logger, DEBUG

# 创建一个 DEBUG 级别的 logger
logger = get_logger("myapp", level=DEBUG)

logger.debug("调试信息")
logger.info("普通信息")
logger.warning("警告信息")
logger.error("错误信息")

自定义颜色方案

from cranelog import get_logger, ColorScheme, Color

# 创建自定义颜色方案
custom_scheme = ColorScheme(
    timestamp_color=Color.BRIGHT_BLACK,
    filename_color=Color.BRIGHT_BLUE,
    lineno_color=Color.BLUE,
    funcname_color=Color.BRIGHT_YELLOW,
    classname_color=Color.BRIGHT_MAGENTA,
)

logger = get_logger("myapp", color_scheme=custom_scheme)
logger.info("使用自定义颜色方案")

使用预定义的颜色方案

from cranelog import get_logger, DARK_SCHEME, VIBRANT_SCHEME

# 使用暗色方案
dark_logger = get_logger("dark", color_scheme=DARK_SCHEME)

# 使用鲜艳方案
vibrant_logger = get_logger("vibrant", color_scheme=VIBRANT_SCHEME)

📋 日志级别

级别 数值 说明
DEBUG 10 调试信息
INFO 20 普通信息
WARNING 30 警告信息
ERROR 40 错误信息
CRITICAL 50 严重错误

🎨 输出格式

每条日志包含以下信息(使用不同颜色):

[时间戳] [级别] [文件名:行号] [类名.函数名] 消息内容

示例输出:

[2024-01-15 10:30:45] [INFO    ] [main.py:25] [DataProcessor.process] 开始处理数据

📄 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

cranelog-0.1.0.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.

cranelog-0.1.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cranelog-0.1.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

File hashes

Hashes for cranelog-0.1.0.tar.gz
Algorithm Hash digest
SHA256 821f934c0bec725a4ecfa25b530839bffd1c935c1bf0b3a03c9ddead8192d7c9
MD5 49d99ad9be509fc3301eb230acd0ad9f
BLAKE2b-256 99b36a82f38c56a38e0c5f1b87636c38c0db9fe142456558fc20059570a558da

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cranelog-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

File hashes

Hashes for cranelog-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 503bd5f3dca20422e0283d5b14694597415adc37f8a9b31b30271ba640a49858
MD5 6ebec63a0c13df0b454e32410f917b41
BLAKE2b-256 22c6b8f933369f0a5598baab6f2e8b2525b9edb2af5ca6d550cd246bb47582e2

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