PyCharm 2019.1.1(Windows 10, 1709)- 按原样运行
片段 - 正常工作。
![](https://istack.dev59.com/EVsdo.webp)
错误:setFormatter - 不起作用。
修复:在第67行进行更改,并消除第70-71行(未格式化的处理程序添加)。
self.stream.write(record.msg + "\n", color)
to
self.stream.write(self.format(record) + "\n", color)
第70-71行可以移动到手动文件运行结构下,以保存测试能力: "Line 70-71可以在手动文件运行结构下移动,以保留测试功能:"
if __name__ == "__main__":
logging.getLogger().setLevel(logging.DEBUG)
logging.getLogger().addHandler(ColorHandler())
logging.debug("Some debugging output")
logging.info("Some info output")
logging.error("Some error output")
logging.warning("Some warning output")
"最初的回答":与标准的StreamHandler进行比较:
import logging
import logging_colored
log_format = logging.Formatter("[%(threadName)-15.15s] [%(levelname)-5.5s] %(message)s")
logger = logging.getLogger('Main')
logger.setLevel(logging.DEBUG)
console = logging.StreamHandler()
console.setFormatter(log_format)
logger.addHandler(console)
console = logging_colored.ColorHandler()
console.setFormatter(log_format)
logger.addHandler(console)
...
![](https://istack.dev59.com/WBysS.webp)
xsnippet.org
也是如此?)- 你能解释一下你在哪里将sys.stderr
更改为sys.stdout
吗? - neo post modern'stream': sys.stdout
来实现此功能。 - Felix Böhme