Loguru: 更优雅的日志记录解决方案!
loguru 是一个Python 简易且强大的第三方日志记录库,该库旨在通过添加一系列有用的功能来解决标准记录器的注意事项,从而减少 Python 日志记录的痛苦。
使用自带自带的 logging 模块的话,则需要我们进行不同的初始化等相关工作。对应不熟悉该模块的同学来说,还是有些费劲的,比如需要配置 Handler/Formatter 等。
而 loguru 就是一个可以 开箱即用 的日志记录模块,我们不再需要复杂的初始化操作就可以通过如下命令来记录日志信息了。
loguru有很多优点,以下列举了其中比较重要的几点!
开箱即用,无需准备
无需初始化,导入函数即可使用
更容易的文件日志记录与转存/保留/压缩方式
更优雅的字符串格式化输出
可以在线程或主线程中捕获异常
可以设置不同级别的日志记录样式
支持异步,且线程和多进程安全
支持惰性计算
适用于脚本和库
完全兼容标准日志记录
更好的日期时间处理
开始使用Loguru之前,你需要先安装 pip install loguru
可以直接用不同的方法来记录不同级别的日志,如info、warning和error。
from loguru import logger
logger.info("这是一条信息日志")
logger.warning("这是一条警告日志")
logger.error("这是一条错误日志")
二次封装loguru
import sys
from loguru import logger
from datetime import datetime
log_path = 'F:\PythonProject\Logs\\'
class Logger:
def __init__(self,log_name):
self.logger = logger # 初始化一个logger
self.logger.remove() # 清空所有设置
# 添加控制台输出的格式,sys.stdout为输出到屏幕
self.logger.add(sys.stdout,
format="<green>{time:YYYYMMDD HH:mm:ss}</green> | " # 颜色>时间
"{process.name} | " # 进程名
"{thread.name} | " # 进程名
"<cyan>{module}</cyan>.<cyan>{function}</cyan>" # 模块名.方法名
":<cyan>{line}</cyan> | " # 行号
"<level>{level}</level>: " # 等级
"<level>{message}</level>", # 日志内容
)
# 输出到文件
rq = datetime.now().strftime('%Y%m%d')
file_name = log_path + log_name +'_' + rq +'.log' # 文件名称
self.logger.add(file_name, level='INFO',
format='{time:YYYYMMDD HH:mm:ss} - ' # 时间
"{process.name} | " # 进程名
"{thread.name} | " # 进程名
'{module}.{function}:{line} - {level} -{message}', # 模块名.方法名:行号
rotation="10 MB")
def get_log(self):
return self.logger