Popen log management вопрос - PullRequest
       4

Popen log management вопрос

0 голосов
/ 08 мая 2009

Проблема:

У меня есть программа мониторинга на Python, которая использует подпроцесс Popen для запуска новых процессов. Эти процессы могут длиться очень долго (недели-месяцы). Я передаю дескриптор файла в переменную stdout в Popen, и я беспокоюсь, что этот файл легко станет огромным. Есть ли способ, которым я могу безопасно перемещать или удалять данные в этом файле журнала?

Важное примечание: Это для системы Windows, поэтому любое решение должно быть совместимо с Windows.

Фрагмент кода:

Так я создаю процесс.

try:
    logFile = file(self.logFileName, 'w')
    self.process = Popen(self.command, shell=False, stdout=logFile, stderr=STDOUT)
finally:
    logFile.close()

1 Ответ

1 голос
/ 08 мая 2009

Исправьте программу монитора таким образом, чтобы она отвечала за ротацию собственных журналов или опосредованно передавала данные, поступающие из программы журналов, и упаковывала их в отдельные файлы.

Это два варианта, которые у вас есть. Вы не можете связываться с дескрипторами файлов другого процесса после его запуска, поэтому нет, вы не можете «перемещать или удалять данные» в этом файле.

= Майк

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