一、简介
loguru和logging都是Python中的日志库,用于记录和输出应用程序的运行日志。
-
logging是python标准库中自带的模块,可以在Python标准库中直接使用。
-
loguru则不是,需要使用pip或conda等包管理工具安装。
pip install loguru
二、优缺点
📝logging
❤️优点
- 丰富的API和功能,可以通过定制不同的记录器、处理器、过滤器和格式化器实现复杂的日志记录和输出;
- 支持多线程和多进程应用程序的日志输出;
- 可以对日志进行分割和归档,方便后期的查找和分析;
- 在性能方面表现较优。
- 可以通过配置文件进行日志记录器的配置,方便维护和管理;
- 可以与其他Python库集成,如Django等;
- 具有很好的文档和社区支持。
💔缺点
- 在初学者使用上可能比较复杂,需要进行一些配置和定制;
- 需要在代码中显式地调用API,代码可读性可能会受到影响。
- 在多进程应用程序中,可能出现日志丢失或重复记录的问题;
- 一些功能需要进行额外的工作,如分割和归档等;
- 使用复杂,可能会出现一些难以调试的问题。
📝loguru
❤️优点
- 简单易用,无需复杂的配置和定制即可实现基本的日志记录和输出;
- 提供了更加灵活的日志格式和上下文信息输出;
- 支持对异常信息的记录和输出,便于问题的排查和调试;
- 能够通过装饰器语法在函数或类上直接添加日志记录功能。
- 支持异步日志记录,能够极大地提升日志记录的性能;
- 支持跨进程、跨线程的日志记录;
- 支持颜色输出和文件行号输出;
- 与logging兼容,可以方便地将现有的logging代码迁移到loguru。
💔缺点
- 功能相对简单,无法满足复杂应用程序的日志记录需求;
- 在性能方面可能不如logging。
- 对于需要细粒度控制的日志记录,可能需要一些定制和配置;
- 对于一些历史悠久的Python项目,可能已经大量使用了logging,转换到loguru需要一些工作量。
三、使用示例
⭐️logging⭐️
import logging
# 创建Logger对象
logger = logging.getLogger(__name__)
# 设置标准日志等级
logger.setLevel(logging.DEBUG)
# 创建FileHandler对象,将日志写入文件
file_handler = logging.FileHandler('test.log', mode='w')
# 设置文件中写入的日志等级
file_handler.setLevel(logging.DEBUG)
# 创建StreamHandler对象,将日志输出到控制台
stream_handler = logging.StreamHandler()
# 设置控制台显示的日志等级
stream_handler.setLevel(logging.DEBUG)
# 设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
stream_handler.setFormatter(formatter)
# 将处理器添加到Logger对象中(注册)
logger.addHandler(file_handler)
logger.addHandler(stream_handler)
# 记录日志信息
logger.debug('Debug message')
logger.info('Info message')
logger.warning('Warning message')
logger.error('Error message')
logger.critical('Critical message')
⭐️loguru⭐️
from loguru import logger
# 设置日志输出格式
logger.add('test.log', rotation='100 MB', format='{time} - {level} - {message}')
# 记录日志信息
logger.debug('Debug message')
logger.info('Info message')
logger.warning('Warning message')
logger.error('Error message')
logger.critical('Critical message')
四、总结
综上所述,基于项目大小和模式选择略有不同,不过一般还是比较推荐使用loguru
。毕竟在多进程下丢失日志真的让人无法接受,况且loguru
使用还那么的方便。
🎉如果对你有所帮助,可以点赞、关注、收藏起来,不然下次就找不到了🎉
【点赞】⭐️⭐️⭐️⭐️⭐️
【关注】⭐️⭐️⭐️⭐️⭐️
【收藏】⭐️⭐️⭐️⭐️⭐️
Thanks for watching.
–Kenny