【Python】loguru模块_打印日志
loguru
安装及使用
# 安装 pip install loguru
# 引用 from loguru import logger as logs # 打印日志 logs.debug("debug") logs.warning("warning")
执行结果:
生成日志文件
# 写入文件 logg.add("logs_20220415.log")
# 将日志保存在当前路径上一级目录的logs目录下,命名为 log_name log_name = "log_{}.log".format(datetime.datetime.now().strftime('%Y%m%d')) logs.add(sink=os.path.abspath("..") + "\\logs\\{}".format(log_name), level=log_level.upper())
# 设置生成日志文件,utf-8编码,每天0点切割,zip压缩,保留3天,异步写入 logs.add(sink='test.log', level="INFO", rotation="00:00", retention="3 days", compression="zip", encoding="utf-8", enqueue=True)
# rotation 参数,文件记录条件 logs.add("file_name1.log", rotation="50MB") # 超过50MB即生成新文件 logs.add("file_name1.log", rotation="12:00") # 每天12点生成新文件 logs.add("file_name1.log", rotation="1 week") # 每1周 生成新文件 logs.add("file_name1.log", rotation="3 days") # 每3天 生成新文件
# compression 参数 配置文件压缩格式 logs.add("file_name1.log", compression="zip") # 压缩成zip
# 仅输出到文件 不打印到控制台 # 删除以前添加的处理程序并停止向其接收器发送日志。 logs.remove(handler_id=None) # 移除控制台输出
# 添加logging 集成loguru输出到控制台(及html报告) class PropogateHandler(logging.Handler): def emit(self, record): logging.getLogger(record.name).handle(record) logs.add(PropogateHandler(), format="{time:YYYY-MM-DD at HH:mm:ss} | {message}")
执行结果:
异常捕获
catch装饰器的方式实现异常捕获
@logs.catch def test_case_logc(self): anv = "" return anv[0]
执行结果:
exception方法也可以实现异常的捕获与记录
def test_case_logc(self): try: 1/0 except: logs.exception("异常捕获")
执行结果: