pm2 - возможность видеть «sys.stdout» в глобальных журналах вместо python.exe - PullRequest
0 голосов
/ 14 ноября 2018

Так что я только что нашел pm2, и мне очень нравится, что он действительно перезапускается при возникновении ошибки или чего-то подобного.

Однако я также читал, что с ним можно запустить python, но яобнаружил проблему, в которой он не использует глобальные журналы для Python в моем случае

Изображение

enter image description here

Так как мнеprint?

Я использую настраиваемую печать, которую я называю utils.py, которая выглядит как

class Logger:

def __init__(self):
    colorama.init()

@staticmethod
def __timestamp():
    timestamp = str(datetime.now().strftime("[%H:%M:%S.%f")[:-3]+"]")
    return timestamp

def log(self, text):
    sys.stdout.write("{}{} {}".format(self.__timestamp(), '[Profile-' + multiprocessing.current_process().name.replace("Process-", "").replace("MainThread", "MAIN") + ']', text))
    sys.stdout.write("\n")
    sys.stdout.flush()

, и, как вы можете видеть, она содержит стандартный вывод.

Проблема здесь в том, что теперь, когда я пытаюсь вызвать функцию в нашем случае, logger.log («тестирование») она не будет распечатываться в глобальных журналах pm2, а вместо этого создает новый python.exeи вместо этого выполняет там программу, которую я не желаю.поэтому я здесь спрашиваю, как я могу сделать так, чтобы он работал через pm2 вместо собственного python.exe?

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