Skip to main content

Simple ANSI-colored console logger with optional file output

Project description

freel00p-colored-logger

一个极简、轻量的 Python 日志工具,提供:

  • 控制台输出带 ANSI 颜色的时间戳 + 日志级别
  • 可选的纯文本文件日志输出
  • 零额外依赖(只依赖标准库 logging
  • 简单易用,一行代码获取 logger

特性

  • 彩色控制台输出(时间戳蓝色、INFO 绿色、WARNING 黄色、ERROR 红色、CRITICAL 紫色)
  • 支持自定义日志名称、级别、文件路径
  • 自动创建日志文件所在目录
  • 防止重复添加 handler(适合 Jupyter、多模块使用)
  • 完全兼容 Python 3.8+

安装

pip install freel00p-colored-logger

或使用 uv(推荐,更快):

uv pip install freel00p-colored-logger

快速使用

from freel00p_colored_logger import get_logger

# 1. 只输出到控制台(带颜色)
logger = get_logger("my_app", level="INFO")

logger.debug("这条不会显示(级别太低)")
logger.info("开始处理数据...")
logger.warning("内存使用率较高")
logger.error("文件读取失败", exc_info=True)

输出示例(控制台彩色效果):

2025-03-04 18:45:23 [INFO] 开始处理数据...
2025-03-04 18:45:24 [WARNING] 内存使用率较高
2025-03-04 18:45:25 [ERROR] 文件读取失败
Traceback (most recent call last): ...
# 2. 同时输出到文件(文件是纯文本格式)
logger = get_logger(
    name="pdf_processor",
    level="INFO",
    log_file="logs/pdf.log",         # 自动创建目录
    file_level="DEBUG"               # 文件记录更详细
)

logger.debug("详细调试信息,只写到文件")
logger.info("这条同时出现在控制台和文件")

完整参数说明

get_logger(
    name: str = "app",                      # logger 名称
    level: int | str = logging.INFO,        # 控制台最低级别(可传字符串 "INFO")
    log_file: str | Path | None = None,     # 文件路径,None 则不写文件
    file_level: int | str = logging.DEBUG,  # 文件最低级别
    datefmt: str = "%Y-%m-%d %H:%M:%S",     # 时间格式
    propagate: bool = False                 # 是否向上传播(通常设为 False)
) -> logging.Logger

推荐用法

在项目入口文件或主模块中:

# main.py
from freel00p_colored_logger import get_logger

logger = get_logger("my_project", log_file="logs/app.log")

# 全项目共用这个 logger
def some_function():
    logger.info("函数开始执行")

为什么选择这个库?

  • 极简:只有 ~100 行代码,无任何第三方依赖
  • 颜色直观:适合开发/调试阶段快速定位问题
  • 安全:避免重复配置 handler 的常见坑
  • 跨平台:ANSI 颜色在大多数终端(Windows Terminal、VS Code、iTerm 等)正常显示

贡献

欢迎提交 issue 或 PR!

  1. Fork 本仓库
  2. 创建 feature 分支 (git checkout -b feature/xxx)
  3. 提交代码 (git commit -m 'Add some feature')
  4. Push 到分支 (git push origin feature/xxx)
  5. 提交 Pull Request

许可证

MIT License

Copyright (c) 2025 FreeL00P

详见 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

freel00p_colored_logger-0.1.4.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

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

freel00p_colored_logger-0.1.4-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file freel00p_colored_logger-0.1.4.tar.gz.

File metadata

  • Download URL: freel00p_colored_logger-0.1.4.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for freel00p_colored_logger-0.1.4.tar.gz
Algorithm Hash digest
SHA256 35977a06ebeb632654c4b0374facab957c79f7accea372feb00b65f069bba414
MD5 4f8554ed7464056210840b1e1780f5f4
BLAKE2b-256 b4ffe151d043dd7534f38177a714985f0d2a2c01ff9b3a36dd6a2d912bbb1b1d

See more details on using hashes here.

File details

Details for the file freel00p_colored_logger-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: freel00p_colored_logger-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for freel00p_colored_logger-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3e4b54ccc4743ebd5101733aaa320d588df1a638470e8e1e823e518c49f7ad93
MD5 a5b8c9d8c9db63b086c33e9c0d0178f7
BLAKE2b-256 c20326ae861549bbb278496c3a2e110bf2ac9f734ceb1fd71800bfcf18a19a4a

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