Quick-Logger-Colorful:轻量无依赖的 Python 彩色日志库,同步异步双支持
Quick-Logger-Colorful 是一款轻量级 Python 日志库,支持同步与异步双模式,提供彩色终端输出、自动异常捕获及按日拆分日志功能。该库零依赖、零配置开箱即用,兼容 Python 3.7+ 及 Flask、Django、FastAPI 等主流框架。通过命令行参数可快速切换调试与生产模式,支持自定义日志格式与路径,适用于各类 Python 项目开发中的日志管理需求。

Quick-Logger-Colorful 是一款轻量级 Python 日志库,支持同步与异步双模式,提供彩色终端输出、自动异常捕获及按日拆分日志功能。该库零依赖、零配置开箱即用,兼容 Python 3.7+ 及 Flask、Django、FastAPI 等主流框架。通过命令行参数可快速切换调试与生产模式,支持自定义日志格式与路径,适用于各类 Python 项目开发中的日志管理需求。

在 Python 开发中,日志是排查问题、追踪流程的核心工具,但原生 logging 配置繁琐,第三方日志库常依赖过重或功能冗余。为此开发了 Quick-Logger-Colorful——一款轻量化、零配置、支持彩色输出与同步/异步双模式的 Python 日志工具,无需复杂配置,开箱即用,适配各类 Python 项目。
✅ 分级日志:支持 5 级日志分级,满足不同场景需求
🎨 彩色终端输出:不同级别日志采用差异化颜色,视觉区分更清晰
🐛 自动异常捕获:单行动态装饰器,同时支持同步/异步函数,用户可以定义某些异常自动标记为 FATAL 级别,完整记录堆栈信息
⚙️ 零配置开箱即用:首次运行自动创建日志目录和配置文件,无需手动初始化,新手秒上手
📅 按日拆分日志:自动生成每日独立日志文件,避免单文件过大,便于日志归档与查询
🔄 同步异步双模式:核心模块支持同步日志,asynclog 模块支持异步日志,适配不同项目架构
🌍 模式快速切换:通过 -O 命令行参数,一键切换调试/生产模式,灵活控制日志输出级别
pip install quick-logger-colorful
git clone https://github.com/huyuenshen/quick-logger.git
cd quick-logger
pip install .
from quick_logger import Logger, start_logger
# 初始化日志器(自动创建日志目录和配置文件)
logger = Logger()
# 输出不同级别日志(通过 typ 参数指定级别)
logger.log("This is a DEBUG message", typ=0)
logger.log("This is an INFO message", typ=1)
logger.log("This is a WARN message", typ=2)
logger.log("This is an ERROR message", typ=3)
logger.log("This is a FATAL message", typ=4)
# 装饰器捕获异常(某些异常自动标记为 FATAL 级别)
@start_logger()
def test_function():
logger.log("Running sync test function", typ=1)
raise KeyError("Critical error (marked as FATAL)")
if __name__ == "__main__":
try:
test_function()
except Exception:
pass
import asyncio
from quick_logger import asynclog
async def async_test_func():
# 初始化异步日志器
logger = asynclog.Logger()
await logger.log("This is an async INFO message", typ=1)
await logger.log("This is an async FATAL message", typ=4)
# 模拟异步任务(无阻塞)
await asyncio.sleep(1)
# 异步函数异常捕获装饰器
@asynclog.start_logger(fatals=[ImportError])
async def wrapped_async_func():
await async_test_func()
raise ImportError("Async fatal error")
if __name__ == "__main__":
asyncio.run(wrapped_async_func())
生产模式:隐藏 DEBUG 级别,仅输出 INFO/WARN/ERROR/FATAL
python your_script.py -O
调试模式(默认):输出所有级别日志(DEBUG/INFO/WARN/ERROR/FATAL)
python your_script.py
首次运行后,会在项目目录下创建配置文件:./Logger/.config/Config.json,默认配置如下:
{"pattern":"[{time}][{func}][{level}]:{msg}","file":"./Logger/{date}.log.txt","enable_color":true}
pattern:日志格式模板,支持 4 个占位符
{time}:日志输出时间(默认格式:HH:MM:SS){func}:日志所在函数名{level}:日志级别(DEBUG/INFO/WARN/ERROR/FATAL){msg}:日志内容file:日志文件路径,{date}自动替换为当前日期(默认格式:YYYY-MM-DD)enable_color:是否启用终端彩色输出(默认:true){"pattern":"[{time}] [{level}] [{func}] - {msg}","file":"./Logger/{date}.log.txt","enable_color":true}
{"pattern":"[{time}][{func}][{level}]:{msg}","file":"./Logger/{date}.log.txt","enable_color":false}
{"pattern":"[{time}][{func}][{level}]:{msg}","file":"./Logger/{date:%Y%m%d}.log.txt"}
// Linux/macOS
{"pattern":"[{time}][{func}][{level}]:{msg}","file":"/var/log/my_project/{date}.log.txt"}
// Windows
{"pattern":"[{time}][{func}][{level}]:{msg}","file":"D:\\Logs\\my_project\\{date}.log.txt"}
在装饰器的参数中加上 fatals=[...]并在列表里面写上你要自定义的异常,如:
@quick_logger.start_logger(fatals=[ImportError, IndexError])
def func():
a = [0, 1, 2]
return a[3] # 抛出 IndexError,命中 FATAL 条件
本项目基于 MIT 开源协议,可自由使用、修改、商用,详见项目根目录下的 LICENSE 文件。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online