[英]Redirect stdout to logger in Python
我可以将stdout
所有输出重定向到我使用标准logging
模块设置的logging
器吗? (我有os.system调用,其输出我也想看到或掩盖打印语句)
你也许可以利用在建议的这个帖子 ,总结如下:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.