PyCharm Python logging против флеш-расы? - PullRequest
0 голосов
/ 30 октября 2019

Рассмотрим этот простой пример:

import logging
from prompter import prompt


if __name__ == "__main__":
    logger = logging.getLogger(__name__)
    handler = logging.StreamHandler()
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)

    logger.info("when do you think I am going to be printed?")
    input_ = prompt("Type in your input: ")
    print input_

Если я запускаю сценарий из команды, вывод выглядит корректно:

python logger_vs_prompter.py
when do you think I am going to be printed?
Type in your input:  A
A

Теперь, если я запускаю его через PyCharm IDE,независимо от того, "run" или "debug", вывод становится непредсказуемым:

Connected to pydev debugger (build 192.6817.19)
Type in your input:  when do you think I am going to be printed?
A
A

Connected to pydev debugger (build 192.6817.19)
when do you think I am going to be printed?
Type in your input:  A
A

C:\devel\Python-2.7\python.exe logger_vs_prompter.py
Type in your input:  when do you think I am going to be printed?
D
D

Я даже пытался принудительно сбросить логгер, добавив

logger.handlers[0].flush()

Но не помогло.

Я склонен подозревать, что это проблема IDE и что мне не стоит беспокоиться о неуклюжих выходных данных в моем реальном случае использования, но, тем не менее, есть ли способ обеспечить порядок вывода?

...