Python强大的日志模块logging (2)

类位于核心 包,它可将日志记录输出发送到数据流例如 sys.stdout, sys.stderr 或任何文件类对象(或者更精确地说,任何支持 write() 和 flush() 方法的对象

类位于核心 包,它可将日志记录输出到磁盘文件中。 它从 继承了输出功能。

我们需要通过调用 类(以下称为 loggers , 记录器)的实例来执行日志记录。

对象有三个常见的方法:

指定记录器将处理的最低严重性日志消息,其中 debug 是最低内置严重性级别, critical 是最高内置严重性级别。 例如,如果严重性级别为 INFO ,则记录器将仅处理 INFO 、 WARNING 、 ERROR 和 CRITICAL 消息,并将忽略 DEBUG 消息。

和 从记录器对象中添加和删除处理程序对象。处理程序在以下内容中有更详细的介绍 。

和 可以添加或移除记录器对象中的过滤器。 包含更多的过滤器细节。

下面示例采用添加日志记录器对象输出和上面一样在控制台打印

import logging logger = logging.getLogger(__name__) logger.setLevel(level=logging.INFO) handler = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(lineno)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.info('This is a log info') logger.debug('Debugging') logger.warning('Warning exists') logger.info('Finish')

image-20210103215550860

当然也同样能保存到文件,为了演示修改了文件名称为put.log

import logging logger = logging.getLogger(__name__) logger.setLevel(level=logging.INFO) handler = logging.FileHandler('put.log') formatter = logging.Formatter('%(asctime)s - %(lineno)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.info('This is a log info') logger.debug('Debugging') logger.warning('Warning exists') logger.info('Finish')

image-20210103220121427

日志双向输出

既然之前的方案已经能达到相同的效果了,那么后面的方法到底有什么强大之处。我们来实现一个之前方法所不能达成的效果。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzppsz.html