python——loguru第三方日志管理模块

loguru第三方日志管理模块

  • loguru介绍
    • 日志等级
    • 日志保存
    • 日志过滤
    • 处理异常

loguru介绍

loguru是第三方库,拿来即用,不用太多的配置
安装:pip install loguru

日志等级

from loguru import logger

logger.debug('这是一条调试消息!')
logger.info('这是一条普通消息!')
logger.warning('这是一条警告消息!')
logger.error('这是一条错误消息!')
logger.critical('这是一条严重错误消息!')
logger.success('这是一条成功调用!')

# 记录报错信息,包含堆栈
logger.exception('这里发生了某些错误!')

python——loguru第三方日志管理模块_第1张图片

关闭控制台输出
logger.remove(handler_id=None)

日志保存

python——loguru第三方日志管理模块_第2张图片

# 日志保存
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()

你可能感兴趣的:(python,开发语言)