默认情况下,StreamHandler实例使用sys.stderr是什么意思?

时间:2018-11-07 12:31:34

标签: python logging

Python 3 official docs陈述关于StreamHandler的以下内容:

  

返回StreamHandler类的新实例。如果指定了stream,实例将使用它来记录输出;否则,实例将使用它来记录输出。否则,将使用sys.stderr

有人可以解释一下这是什么意思吗?

我使用一个StreamHandler实例,该实例在不指定流的情况下进行了初始化:

class MyLogger():
    def __init__(self, level):
        self.logger   = getLogger('MyLogger')
        self.debug    = self.logger.debug
        self.info     = self.logger.info
        self.warning  = self.logger.warning
        self.error    = self.logger.error
        self.critical = self.logger.critical
        streamHandler = StreamHandler()
        streamHandler.setLevel(level)
        self.logger.addHandler(streamHandler)
        self.logger.setLevel(level)

myLogger = MyLogger(DEBUG)
...
myLogger.debug('message')

但是所有内容都会打印到控制台上(即sys.stdout)。

那么sys.stderr到底涉及多少?

谢谢!

0 个答案:

没有答案