加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

将stdout重定向到Python中的记录器

发布时间:2020-12-16 22:12:14 所属栏目:Python 来源:网络整理
导读:我可以将stdout的所有输出重定向到我使用标准日志记录模块设置的记录器吗? (我有os.system调用,其输出我也想看到或掩盖打印语句) 最佳答案 您可以使用this post中的建议,总结如下: import loggingclass LoggerWriter: def __init__(self,logger,level): se

我可以将stdout的所有输出重定向到我使用标准日志记录模块设置的记录器吗?
(我有os.system调用,其输出我也想看到或掩盖打印语句)

最佳答案
您可以使用this post中的建议,总结如下:

import logging

class LoggerWriter:
    def __init__(self,logger,level):
        self.logger = logger
        self.level = level

    def write(self,message):
        if message != 'n':
            self.logger.log(self.level,message)

def main():
    logging.basicConfig(level=logging.DEBUG)
    logger = logging.getLogger("demo")
    info_fp = LoggerWriter(logger,logging.INFO)
    debug_fp = LoggerWriter(logger,logging.DEBUG)
    print >> info_fp,"An INFO message"
    print >> debug_fp,"A DEBUG message"

if __name__ == "__main__":
    main()

运行时,脚本会打印:

INFO:demo:An INFO message
DEBUG:demo:An DEBUG message

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读