1. 简介:
- 日志是对于软件执行所发生的事件的一种追踪记录方式。日常使用过程中对代码执行的错误和问题会进行查看日志来分析定位问题所在。平常编写代码以及调试也经常用到。
- python logging 模块是用来记录日志的,代码运行的过程中希望记录一些重要的输出信息,以前写日志需要自己往文件里写记录信息,使用了logging之后只需要一次配置好,非常方便。logging模块有两种使用方法,一种是简单的函数式,另一种是用logging对象的方式,对象的方式使用起来功能更全更灵活,所以使用最多的也是对象的方式。
2. 用法:
import logging
logging.warning('this is warning')
logging.info('this is info')
>>
2021-05-25 10:14:59,195 - root - WARNING - this is warning
2021-05-25 10:14:59,196 - root - INFO - this is info
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug('this is debug')
logging.info('this is info')
logging.warning('this is warning')
logging.error('this is error')
>>
2021-05-25 10:18:40,280 - root - INFO - this is info
2021-05-25 10:18:40,281 - root - WARNING - this is warning
2021-05-25 10:18:40,282 - root - ERROR - this is error
- 将日志保存(常用)
运行代码之后可以看到会生成一个 log.log 的文件,声明logger对象之后,可以在任何的代码文件中记录日志输出,只需要在记录前声明同样的logger对象(一般在引入包之后声明一行logger = logging.getLogger(name) ),如下:
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s',
datefmt = '%m/%d/%Y %H:%M:%S',
level = logging.INFO,
filename='log.log')
logger.info(f"device: {'sd'} n_gpu: {7}")
logger.info("Num Epochs = %d", 12)
logger.info(f" Batch size = {64}")
>>文件内容
05/25/2021 10:37:18 - INFO - __main__ - device: sd n_gpu: 7
05/25/2021 10:37:18 - INFO - __main__ - Num Epochs = 12
05/25/2021 10:37:18 - INFO - __main__ - Batch size = 64
参考:
python 日志模块logging的使用场景及示例
网友评论