【loguru】Python简单的日志管理模块
简介
在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会才用日志的方式来进行记录这些信息。
在 Python 中用到日志记录,那就不可避免地会用到内置的 logging标准库 。虽然logging 库采用的是模块化设计,你可以设置不同的 handler 来进行组合,但是在配置上通常较为繁琐;而且如果不是特别处理,在一些多线程或多进程的场景下使用 logging还会导致日志记录会出现错乱或是丢失的情况。
但有这么一个库,它不仅能够减少繁琐的配置过程还能实现和logging类似的功能,同时还能保证日志记录的线程进程安全,又能够和logging 相兼容,并进一步追踪异常也能进行代码回溯,这个库叫loguru。
loguru 库的使用可以说是十分简单,我们直接可以通过导入它本身封装好的logger 类就可以直接进行调用。
调用
from loguru import logger
logger.debug('调试消息')
logger.info('普通消息')
logger.warning('警告消息')
logger.error('错误消息')
logger.critical('严重错误消息')
logger.success('成功调用')
保存
- 循环,rotation,达到指定大小后建新日志。
- 保留,retention,定期清理。
- 压缩,compression,压缩节省空间。
from loguru import logger
logger.add("file_1.log", rotation="500 MB") # 自动循环过大的文件
logger.add("file_2.log", rotation="12:00") # 每天中午创建新文件
logger.add("file_3.log", rotation="1 week") # 一旦文件太旧进行循环
logger.add("file_X.log", retention="10 days") # 定期清理
logger.add("file_Y.log", compression="zip") # 压缩节省空间
logger.add("log_{time}.log", encoding='utf-8') # 以时间命名
装饰器
from loguru import logger
@logger.catch
def func():
pass
参考
https://blog.csdn.net/lly1122334/article/details/107516039
https://blog.csdn.net/bailang_zhizun/article/details/107863671
https://zhuanlan.zhihu.com/p/514838075
https://www.jianshu.com/p/5aead7b6a7a9
【loguru】Python简单的日志管理模块的更多相关文章
- python+pytest接口自动化(15)-日志管理模块loguru简介
python自带日志管理模块logging,使用时可进行模块化配置,详细可参考博文Python日志采集(详细). 但logging配置起来比较繁琐,且在多进行多线程等场景下使用时,如果不经过特殊处理, ...
- slf4j+logback搭建超实用的日志管理模块
文章转自http://www.2cto.com/kf/201702/536097.html slf4j+logback搭建超实用的日志管理模块(对日志有编号管理):日志功能在服务器端再常见不过了,我们 ...
- Python开发之日志记录模块:logging
1 引言 最近在开发一个应用软件,为方便调试和后期维护,在代码中添加了日志,用的是Python内置的logging模块,看了许多博主的博文,颇有所得.不得不说,有许多博主大牛总结得确实很好.似乎我再写 ...
- python selenium2示例 - 日志管理
logger继承图 前言 在自动化测试实践过程中,必不可少的就是进行日志管理,方便调试和生产问题追踪,python提供了logging模块来进行日志的管理.下面我们就logging模块的学习和使用进行 ...
- Python简单主机批量管理工具
一.程序介绍 需求: 简单主机批量管理工具 需求: 1.主机分组 2.主机信息使用配置文件 3.可批量执行命令.发送文件,结果实时返回 4.主机用户名密码.端口可以不同 5.执行远程命令使用param ...
- 函数式编程(logging日志管理模块)
本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日 ...
- c#: 简单的日志管理类(TextWriterTraceListener)
以c#实现轻量级的日志管理,着实简单,置一静态类记之: /// <summary> /// 日志管理 /// </summary> public static class Lo ...
- Python中的日志管理Logging模块
1.基本的用法 import logging logging.debug('This is debug message') logging.info('This is info message') l ...
- 项目日志的管理和应用 log4js-Node.js中的日志管理模块使用与封装
开发过程中,日志记录是必不可少的事情,尤其是生产系统中经常无法调试,因此日志就成了重要的调试信息来源. Node.js,已经有现成的开源日志模块,就是log4js,源码地址:点击打开链接 项目引用方法 ...
- log4js-Node.js中的日志管理模块使用与封装
开发过程中,日志记录是不可缺少的事情.尤其是生产系统中常常无法调试,因此日志就成了重要的调试信息来源. Node.js,已经有现成的开源日志模块,就是log4js,源代码地址:点击打开链接 项目引用方 ...
随机推荐
- 关于protobuf报错'tr1/unordered_map' file not found
这个问题的话,查了很多资料,总的来说就是C++版本的问题,新版本的namespace结构变化了,C++库的层级结构变化了 1.config.h HASH_MAP_H HASH_SET_H 新版本 ...
- 【博客】如何在Github上创建博客
[博客]如何在Github上创建博客 1. 安装nodejs windows安装npm教程--nodejs 2. 安装hexo npm install -g hexo-cli 3. 搭建博客 $ he ...
- 开启wamp依旧使用已下载的mysql
1.打开D:\Environment\wamp64\bin\mysql\mysql8.0.31,修改my.ini 添加本机mysql密码,并且将3个port=3306改为port=3316 2.打开D ...
- 算子groupByKey和reduceByKey的区别
groupByKey根据k对v进行分组,如果要实现wordCount,需要再使用一个聚合算子,例如mapValues reduceByKey有聚合功能,最重要的是在shuffle过程之前可以对分区内相 ...
- 基于Antlr的Modelica3.5语言解析
背景 Modelica语言是一种统一面向对象的系统建模语言 官方文档中明确写明了语法规范 在附录的第一章词法,第二章语法都完整的罗列的语言规范,对于Antlr适配特别好 只需要把[]修改为Antlr的 ...
- k8s 基础
创建pod(kubectl create -f {podname} .yaml pod "{podname} " created -n {namespace}) cat name ...
- vue高级进阶( 一 ) 组件精髓概述
前言 这个系列可能会分为几部分: 基础以及高级用法总结 一些比较有代表性的实战 源码解析(一定是用最粗俗,不对,是最通俗的语言讲解,这个我可以保证) 总之一定对得起高级进阶这几个字... 组件分类 v ...
- Django Rest Frame work 如何使用serializers序列化函数新手教程
Django Rest Frame work 如何使用serializers序列化 Django Rest Framework提供了serializers模块,用于序列化和反序列化模型实例 ...
- Typora的初使用
HelloTypora 二级标题 三级标题 HelloWorld! HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld 引用 分割线 图片 # ...
- PHP表单验证内容是否为空的实现代码
<!doctype html> <html> <head> <meta http-equiv="conent-type" conten ...