以下のように、main.py と infinit.py の 2 つのファイルがあります。
main.py
#!/usr/bin/python
import logging
import subprocess
import sys
logging.basicConfig(level=logging.INFO)
def forever():
cmd = [sys.executable, 'infinit.py']
while 1:
try:
print 'running new instance of:'
print ' '.join(cmd)
popen = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, universal_newlines=True)
for line in iter(popen.stderr.readline, ""):
print line,
for line in iter(popen.stdout.readline, ""):
print line,
except Exception as e:
print 'Something bad happend'
logging.error(e)
if __name__ == '__main__':
forever()
infinit.py
#!/usr/bin/python
import logging
logging.basicConfig(level=logging.INFO)
i = 0
while 1:
i += 1
logging.info('i: {0}'.format(i))
print i
main.py を実行し、両方 (印刷とロギング) をコンソールに表示したいと考えています。また、Windows と Linux で実行したいと考えています。さらに、Windows Idle で動作 (印刷とログ記録) することは可能ですか?