loguru是第三方库,拿来即用,不用太多的配置
安装:pip install loguru
from loguru import logger
logger.debug('这是一条调试消息!')
logger.info('这是一条普通消息!')
logger.warning('这是一条警告消息!')
logger.error('这是一条错误消息!')
logger.critical('这是一条严重错误消息!')
logger.success('这是一条成功调用!')
# 记录报错信息,包含堆栈
logger.exception('这里发生了某些错误!')
关闭控制台输出
logger.remove(handler_id=None)
# 日志保存
logger.add("logtest.log")
logger.add(logFile, rotation='200KB', compression='zip', retention="72h")
- rotation:
日志分割方式: 可以按照日志大小或者时间分割, 比如rotation='200KB',200k一个文件;rotation='1 week',一周一个文件,rotation="12:00" 每天12:00分割文件。"100 MB", "0.5 GB", "1 month 2 weeks", "4 days", "10h", "monthly", "18:00", "sunday", "w0", "monday at 12:00"
- compression
分割后的文件是否进行压缩的格式, compression="zip",zip方式压缩."gz","bz2","xz","lzma","tar","tar.gz","tar.bz2", "tar.xz","zip"
- retention
日志清理: 多少天清理一次日志."1 week", "3 days", "2 months"
- enqueue
处理器是否使用队列进行异步处理
- format
日志格式
loguru还支持日志过滤功能,可以通过logger.add()函数的filter参数来添加过滤器。例如,我们可以添加一个过滤器来只输出级别为INFO或更高级别的日志信息,如下所示:
from loguru import logger
# 添加输出到终端的处理器,并添加日志过滤器
logger.add(
handler=sys.stdout,
format="{time} {message} ",
enqueue=True,
filter=lambda record: record["level"].no >= 20
)
# 使用默认配置创建一个日志记录器对象
logger = logger.opt()
logger.info('hello, world!')
logger.debug('this is a debug log')
loguru还支持捕获和记录异常信息,可以通过logger.catch()方法来捕获异常并记录异常信息。例如,我们可以在一个函数中添加logger.catch()来自动记录异常信息,如下所示:
from loguru import logger
# 定义一个会抛出异常的函数
def foo():
a = 1 / 0
# 使用logger.catch()自动记录异常信息
@logger.catch()
def bar():
foo()
# 调用bar()函数
bar()