Python を使用して、いくつかのシェル スクリプト、RScript、Python プログラムなどを実行しています。これらのプログラムは長時間実行される可能性があり、多くの (ログ) 情報を stdout および stderr に出力する可能性があります。私は正常に動作する次の(Python 2.6)コードを使用しています:
stdoutFile=open('stdout.txt', 'a')
stderrFile=open('stderr.txt', 'a')
subprocess.call(SHELL_COMMAND, shell=True, stdout=stdoutFile, stderr=stderrFile)
stdoutFile.close()
stderrFile.close()
これは主に、ファイルに送信される情報のログ記録であり、この情報は長期間にわたって生成される可能性があります。したがって、各行に日付と時刻のプレフィックスを付けることができるかどうか疑問に思っていましたか?
たとえば、現在ログに記録する場合:
Started
Part A done
Part B done
Finished
それから私はそれが欲しい:
[2012-12-18 10:44:23] Started
[2012-12-18 12:26:23] Part A done
[2012-12-18 14:01:56] Part B done
[2012-12-18 22:59:01] Finished
注:私が実行するプログラムを変更することは、このpythonコードがこれらのプログラムのラッパーのようなものであるため、オプションではありません。