开发原因
众所周知,Python的Log日志依赖于Logging库,几乎所有的Python程序打印日志都是这个库。
我用了一段时间这个库,发现几个影响日志体验的地方,比如不同的日志等级不好做区分,日志具体是在哪里被抛出的也不好做判断。于是我决定自己写一个。
功能介绍
- 不同的日志等级均以不同的颜色打印,区分更明显
- 日志带上了响应时间,在翻阅日志时更好定位问题;
- 日志还能显示具体打印日志的程序路径与具体在哪一行输出的日志,并适配VSCode的Ctrl+单击快速跳转
- 体积小巧,整个库只有7行代码,甚至不到1KB,在Linux环境下编译成.so文件也不到3KB
演示截图
之前发的那个655字节,现在优化后仅需651字节。
功能用法
# 引入库
import log
log.debug("这是一条Debug日志")
log.info("这是一条Info日志")
log.warning("这是一条Warning日志")
log.error("这是一条Error日志")
log.success("这是一条Success日志")
目前存在的问题
- 未添加默认日志等级控制,这意味着在生产环境也输出包括Debug等级的日志
- 无法将日志保存为文件
程序源码
from rich import print; import time, inspect
def log(level, message): print(f"{level} {time.strftime('%H:%M:%S', time.localtime())} [bold]From {inspect.currentframe().f_back.f_back.f_code.co_filename}, line {inspect.currentframe().f_back.f_back.f_lineno}[/bold] {message}")
error = lambda message: log('[bold red][ Error ][/bold red]', message)
info = lambda message: log('[bold blue][ Info ][/bold blue]', message)
success = lambda message: log('[bold green][ Success ][/bold green]', message)
warning = lambda message: log('[bold yellow][ Warn ][/bold yellow]', message)
debug = lambda message: log('[bold cyan][ Debug ][/bold cyan]', message)
该库允许转载并以MIT开源,请保留原作者“@于小丘 www.yxqi.cn”这段信息。
该库允许内置于你的商业项目中,但严禁单独销售该库!再次声明本库完全开源免费!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END