デプロイスクリプトラッパーの1つで、pexpect
(私が気づいていないものがあれば、完全に代替可能です)を検討中ですが、リアルタイムで出力を読む方法が必要です我々はEOF
をヒットした。これはすべての環境で使用されるデプロイメントパッケージであるため、問題が発生するとすぐに問題を捕捉する必要があります(潜在的には非常停止の可能性があります)。pexpectをリアルタイムでどのように解析できますか?
私はこのようなことがありますか?理想的には、私は
完全についてはdef SetupLogging():
# the logger
# set to DEBUG since the reports should already give
# any information we're looking for at a glance
global log
log = logging.getLogger('ansiwrap')
log.setLevel(logging.DEBUG)
# create file handler which logs everything
fh = logging.FileHandler('ansiwrap.debug', mode='w')
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
# create formatter and add it to the handlers
formatter = logging.Formatter('[%(asctime)s] | %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)
# add the handlers to logger
log.addHandler(ch)
log.addHandler(fh)
は、ここでの実装例..です私たちの既存のロガーの使用をしたいのですが、それは私には不格好なようです:
child = pexpect.spawn(cmd)
while True:
try:
child.expect('\n')
print(child.before)
except pexpect.EOF:
break