2016-06-24 4 views
1

私はPythonのログモジュールを適用して私が望むことをするのが難しいです。まあ、私は現在、私がやりたいことはprog2.pyプリントというログにアクセスする、あるサブプロセスモジュールを介してprog1.pyprog2.py別のプログラムのログにアクセスする方法はPythonのサブプロセスで実行されました

input_args = ['python', '/path/to/prog2.py'] + self.chosen_args 
self.process = Popen((input_args), stdout=PIPE) 

を実行していますが、私は方法がわかりません。 logging.getLogger('prog2Classname')prog2.pyのメインクラスにアクセスしますか?私はprog2.pyのコードを所有していませんが、後でログファイルに出力するログを保存します。誰か助けてくれますか?あらゆるヒントが行います。

答えて

0

prog2.pyがstdoutに出力する場合、出力を独自のログファイルにリダイレクトできます。

input_args = ['python', '/path/to/prog2.py'] + self.chosen_args 
file = open("your own log file.txt",'w') 
self.process = Popen((input_args), stdout=file) 
+0

私はこれを行いましたが、 'prog2.py'のログは端末にまだ表示されています。このためにロギングモジュールのStreamHandlerを使用する必要がありますか? prog2.pyはオープンソースのソフトウェアであり、私のものではないからです。 – sparklights

+1

うわー、解決しました。 'stderr'はログのリダイレクト先です。今すぐテキストログファイルにリダイレクトされました。ありがとう@Azeezah – sparklights

+0

私は助けることができる嬉しい:) –

関連する問題