为什么已经有了 logging 标准库,甚至在 loguru,structlog 都存在的情况下,还要做这个一个日志库呢。
当然是都用的不太爽了。
所以将这些日志库的优点整理出来。汇集到一起,就出现了现在的 dictlog 库。
https://github.com/uiautodev/dictlog
pip install dictlog
import dictlog
# 基本用法
log = dictlog.get_logger("myapp")
# 调整日志级别,与 logging.DEBUG 等价,默认是 WARNING
log.level = dictlog.DEBUG
# 支持的日志级别:TRACE(5) < DEBUG(10) < INFO(20) < WARNING(30) < ERROR(40) < CRITICAL(50)
log.trace("detailed debug info", user_id=123) # 最详细的调试信息
log.debug("debug message", port=8080)
log.info("server started", port=8080)
# 绑定上下文,后续调用自动携带
log = log.bind(user="alice")
log.info("user logged in") # 自带 user=alice
log = log.unbind("user")
log.info("context removed") # 不再包含 user
# 捕获异常并附加堆栈,与 logging 用法一致
try:
1 / 0
except ZeroDivisionError:
log.error("something went wrong", exc_info=True)
# 或使用 exception(),默认 exc_info=True
log.exception("something went wrong")
下面是输出,颜色可谓是赏心悦目。

主要的代码也不长,完全就是对标准日志库 logging 的二次封装。但是使用起来方便的太多。
欢迎大家评论,Star