除了 应该去的日志文件之外,有没有办法使用logging模块自动将内容输出到标准输出?例如,我希望所有对、、的调用都去到他们想要的地方,但另外总是被复制到。这是为了避免重复消息,例如: __logger.warning``logger.critical``logger.error``stdout
logging
logger.warning``logger.critical``logger.error``stdout
mylogger.critical("something failed") print "something failed"
所有日志记录输出都由处理程序处理;只需将 a 添加logging.StreamHandler()到根记录器即可。
logging.StreamHandler()
这是一个配置流处理程序(使用stdout而不是 default stderr)并将其添加到根记录器的示例:
stdout
stderr
import logging import sys root = logging.getLogger() root.setLevel(logging.DEBUG) handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) root.addHandler(handler)