Когда он вызывается в качестве сценария Python, метод hasHandlers() возвращает False, как и ожидалось. , поскольку у регистратора нет обработчиков.
С другой стороны, когда он используется в качестве прослушивателя сценария робота, метод hasHandlers() возвращает True, и обработчик не добавляется. При печати обработчиков также отображается пустой список.
Добавлено условие «if not logger.hasHandlers()», поскольку без него одна и та же запись печатается несколько раз при выполнении нескольких тестов.
Код: Выделить всё
def end_test(name, attrs):
set_logging()
some_stuff_logging()
def set_logging():
global logger
logger = logging.getLogger(__name__)
print(logger.handlers)
print ("Has handlers: {}".format(logger.hasHandlers()))
if not logger.hasHandlers():
logger.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s | %(module)s | %(levelname)s | %(message)s")
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
def some_stuff_logging():
/* use logger to print stuff */
if __name__ == '__main__':
set_logging()
some_stuff_logging()
Подробнее здесь: https://stackoverflow.com/questions/773 ... eturn-true