Python loguru日志工具简单使用
- 安装
pip install loguru - 基本使用
from loguru import logger logger.trace("这是 trace 级别日志") # 最详细的信息,通常只在诊断问题时使用 logger.debug("这是 debug 级别日志") # 详细信息,对调试程序有帮助 logger.info("这是 info 级别日志") # 确认程序按预期工作的一般信息 logger.success("这是 success 级别日志") # 表示成功事件的日志(loguru 特有) logger.warning("这是 warning 级别日志") # 表示发生意外但仍可正常运行的情况 logger.error("这是 error 级别日志") # 由于严重问题导致功能错误 logger.critical("这是 critical 级别日志") # 严重错误,可能导致程序终止
- 记录异常堆栈信息
logger.exception("这是 exception 级别日志") # logger.exception()需要在except块中使用,因为需要当前的异常上下文 # 对比logger.error(), 多了个自动记录异常堆栈信息的功能
- logger日志处理器
# logger创建后默认有一个日志处理器,打印日志到控制台 # 添加日志处理器,同一个logger可以添加多个日志处理器,它们会同时生效 handler_id = logger.add(sys.stderr) # sys.stderr为标准错误输出 # 移除日志处理器 logger.remove(handler_id) # 移除所有日志处理器 logger.remove() # 添加写入文件日志处理器 logger.add("test.log") # add 方法的其他参数 logger.add( "test.log", rotation="1 MB", # 日志文件大小达到1MB时自动生成新文件,轮转产生的新文件会自动赋予新名,例如test.log.1。 compression="zip", # 压缩日志文件 enqueue=True, # 启用异步队列,避免阻塞使用logger的线程,提高并发写入性能,使用协程时推荐启用。 encoding="utf-8", # 设置日志文件编码 format="{time} {level} {message}", # 设置日志格式 filter="my_module", # 过滤指定模块的日志,表示只记录my_module模块的日志。还有更多过滤方式,可以灵活配置。 level="INFO", # 设置日志记录级别 ) # rotation参数其他举例: # "12:00" # 每天中午12点自动创建新的日志文件 # "1 week" # 每周自动创建新的日志文件 # 文件名占位符: # "test_{time}.log",logger创建文件时会自动替换成当前时间,例如test_2021-01-01.log
- logger.catch装饰器
@logger.catch def my_function(): pass # 用了这个装饰器,函数发生异常时,异常会被捕获,不向上传播,并且会打印/记录详细的异常堆栈信息,
- 注意
# loguru的logger对象可以在多模块,多线程中使用,是线程安全的。 # 当日志处理器指定的文件被删除,那么处理器持有的文件句柄已经不指向文件,即使创建同名文件,也无法继续写入。这种日志处理器已经无用,但会占用内存,需要移除。
浙公网安备 33010602011771号