2009-05-08 14 views
0

問題:popenのログ管理質問

私は新しいプロセスを開始するには、サブプロセスpopenのを使用してPythonでモニタプログラムを持っています。これらのプロセスは非常に長い時間(数週間〜数ヶ月)実行される可能性があります。私はPopenのstdout変数にファイルハンドルを渡しています。私はこのファイルが巨大になることを心配しています。そのログファイル内のデータを安全に移動または削除する方法はありますか?

重要なお知らせ:これはWindowsシステム上にあり、どの解決策もウィンドウと互換性がなければなりません。

コードスニペット:

は、これは私がプロセスを作成する方法です。

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

この「コマンド」とはなんですか?どんな番組が長時間出力を出すかについてのヒント? –

+0

コマンドは別のPythonプログラムです。 Webサイトでテストを実行し、何も問題がなければ無期限に実行する必要があります。 – Robbie

答えて

1

それは、独自のログを回転させるための責任があるように、モニタプログラムを修正、またはログプログラムから自分を来るデータを仲介し、別々のファイルにそれをパッケージ化します。

これは2つのオプションです。他のプロセスのファイルディスクリプタが実行されると、そのファイルディスクリプタを混乱させることはできません。そのため、そのファイル内の "データを移動または削除"できません。

=マイク

+0

それは私が望んでいた答えではありませんでしたが、あなたが正しいように見えます。 – Robbie

関連する問題