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!
- Fork 本仓库
- 创建 feature 分支 (
git checkout -b feature/xxx) - 提交代码 (
git commit -m 'Add some feature') - Push 到分支 (
git push origin feature/xxx) - 提交 Pull Request
许可证
MIT License
Copyright (c) 2025 FreeL00P
详见 LICENSE 文件。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35977a06ebeb632654c4b0374facab957c79f7accea372feb00b65f069bba414
|
|
| MD5 |
4f8554ed7464056210840b1e1780f5f4
|
|
| BLAKE2b-256 |
b4ffe151d043dd7534f38177a714985f0d2a2c01ff9b3a36dd6a2d912bbb1b1d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e4b54ccc4743ebd5101733aaa320d588df1a638470e8e1e823e518c49f7ad93
|
|
| MD5 |
a5b8c9d8c9db63b086c33e9c0d0178f7
|
|
| BLAKE2b-256 |
c20326ae861549bbb278496c3a2e110bf2ac9f734ceb1fd71800bfcf18a19a4a
|