Pytorch loguru日志收集(易化学习笔记五) 电脑版发表于:2024/6/11 9:00 ![](https://img.tnblog.net/arcimg/hb/9f5423825560428289e201711e85e190.png) >#Pytorch loguru日志收集(易化学习笔记五) [TOC] loguru日志简介 ------------ tn2>Loguru 是一个 Python 日志库,旨在简化日志记录的设置和使用,同时提供强大的功能和灵活性。 loguru日志实践 ------------ ### 安装loguru ```python %pip install loguru ``` ![](https://img.tnblog.net/arcimg/hb/f83a94f066734cba81ccbd79de7d837d.png) ### 简单运用 ```python from loguru import logger logger.info("Python {},更喜欢 {msg}!", 3.6, msg="hmy") #//支持{} 类似python的format() logger.error(' error message') ``` ![](https://img.tnblog.net/arcimg/hb/29ca38f770ac4e249fe8deaf365fd7cc.png) ### 自定义日志库 tn2>定义一个自定义的日志库`my_log.py`. ```python from loguru import logger import sys import os import datetime start = datetime.datetime.now() def Outer(file_name=os.path.basename(__file__)): start = datetime.datetime.now() logger.remove(handler_id=None) # //清除之前的设置(不清除会有双份输出) logger.add(sink=file_name+".log") #//完整信息存日志 logger.add(sys.stdout,format="{message}",level="INFO") #//终端输出信息过滤 return logger def run_time(): #//运行时间 end = datetime.datetime.now() run_time = end-start logger.info("run time:") return run_time if __name__ == '__main__': # //做测试代码(调用者是自己时才执行) #//目标:实现完整信息保存到日志,而终端只输出过滤后信息 logger.remove(handler_id=None) # 清除之前的设置 #//设置生成日志文件,utf-8编码,每天0点切割,zip压缩,保留3天,异步写入 #//sink=os.path.basename(__file__)+".log" 表示保存的日志名为当前文件名加.log后缀 logger.add(sink=os.path.basename(__file__)+".log", level="DEBUG", rotation='00:00', retention='3 days', compression='zip', encoding='utf-8', enqueue=True) #//设置输出显示过滤 #//format="{message}" 只输出信息(而 format="{message}{time} {level}" 表示 信息时间 级别 都输出) #// 不设置format,表示用默认的输出(时间 级别 行号 信息) #//level="INFO" 级别以上能显示, critical>error>warning>success>info>debug logger.add(sys.stdout,format="{message}",level="INFO") logger.debug(' debug message') logger.info(' info message') logger.success(' success message!') logger.warning(' warning message') logger.error(' error message') logger.critical(' critical message!') logger.info("Python{}更喜欢{msg}!", 3.6, msg="gogo") #//支持{} 类似python的format() ``` tn2>运行后将记录到`my_log.py.log`中。 ```python %run my_log.py ``` ![](https://img.tnblog.net/arcimg/hb/f1737ebbba49438a8b34f7a5d11bd8cf.png) ![](https://img.tnblog.net/arcimg/hb/881aa25a213047f89dc7d13c3d9be81e.png) ### 外部调用 ```python from my_log import Outer,run_time import os __file__ = "mylogs" out = Outer(os.path.basename(__file__)); #//指定日志的文件名 out.info("model creat ok,start training") out.info("training 100 epoch") out.info('Finished Training') out.info(run_time()) ``` ![](https://img.tnblog.net/arcimg/hb/9e20092508c74833b834c26f95a9a1c1.png) ![](https://img.tnblog.net/arcimg/hb/139afad511d549b4822924aa2701cfd0.png)