Что это означает, что экземпляр StreamHandler по умолчанию использует sys.stderr? - PullRequest
0 голосов
/ 07 ноября 2018

Python 3 официальные документы указывают следующее StreamHandler:

Возвращает новый экземпляр класса StreamHandler. Если указан поток, экземпляр будет использовать его для регистрации выходных данных; в противном случае будет использоваться 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 здесь задействован?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...