【发布时间】:2011-05-23 14:08:07
【问题描述】:
如果使用子进程调用该程序,则从程序的记录器中获取消息会出现问题。
这是使用记录器将消息打印到文件和控制台窗口的程序 BooFoo.py:
import logging
LOG_FILENAME = 'example.log'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)
logger = logging.getLogger('main')
logger.addHandler(logging.StreamHandler())
print 'print foo'
logger.info('logger boo')
这是 CallBooFoo.py 程序:
import subprocess
proc = subprocess.Popen(['python BooFoo.py'], bufsize=512, stdin = None,
stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True)
proc_out, proc_err = proc.communicate()
print proc_out
"logger boo" 不会与 CallBooFoo.py 一起打印。知道如何解决这个问题吗?使用 os.system 是可行的,但由于其他一些原因,这不是一个解决方案。
【问题讨论】:
标签: python logging subprocess