栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

记录,StreamHandler和标准流

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记录,StreamHandler和标准流

以下脚本

log1.py

import logging, sysclass SingleLevelFilter(logging.Filter):    def __init__(self, passlevel, reject):        self.passlevel = passlevel        self.reject = reject    def filter(self, record):        if self.reject: return (record.levelno != self.passlevel)        else: return (record.levelno == self.passlevel)h1 = logging.StreamHandler(sys.stdout)f1 = SingleLevelFilter(logging.INFO, False)h1.addFilter(f1)rootLogger = logging.getLogger()rootLogger.addHandler(h1)h2 = logging.StreamHandler(sys.stderr)f2 = SingleLevelFilter(logging.INFO, True)h2.addFilter(f2)rootLogger.addHandler(h2)logger = logging.getLogger("my.logger")logger.setLevel(logging.DEBUG)logger.debug("A DEBUG message")logger.info("An INFO message")logger.warning("A WARNING message")logger.error("An ERROR message")logger.critical("A CRITICAL message")

运行时,产生以下结果。

C: temp> log1.py调试消息INFO消息警告消息错误消息关键信息

正如你所期望的,因为在终端上

sys.stdout
,并
sys.stderr
是相同的。现在,让我们将标准输出重定向到文件
tmp

C: temp> log1.py> tmp调试消息警告消息错误消息关键信息

因此,INFO消息没有被打印到终端-但指示消息

sys.stderr
被打印。让我们看一下其中的内容
tmp

C: temp>输入tmpINFO消息

So that approach appears to do what you want.



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637590.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号