使用Lib.cmd在登录到stdout时发出命令

时间:2018-01-11 12:19:05

标签: python logging cmd stdout stdin

我对python很新。现在我写了一个python程序 A)在一个线程中进行后台检查,并记录其结果并记录到stdout。 并且B)还有一个在循环中运行的Lib.cmd来提供程序命令。

import logging
from cmd import Cmd

class TPrompt(Cmd):
    def do_config(self):
        """prints the current config"""
        print({'loglevel': 20})

def check():
    while True:
        logger.info('Check')
        sleep(1)

def main():
    #start thread for checking 
    t1 = Thread(target=check)
    t1.setDaemon(True)
    t1.start()

    prompt = TPrompt(_conf)
    prompt.use_rawinput = True
    prompt.cmdloop('Starting prompt...')

shell输出如下所示:

prompt>
2018-01-11 13:02:38 - INFO - Check
config
{'loglevel': 20}
prompt> 2018-01-11 13:02:39 - INFO - Check
2018-01-11 13:02:40 - INFO - Check
con2018-01-11 13:02:46 - INFO - Check
fig
*** Unknown syntax: fig

当前命令由日志中的换行符分隔,不再有效。使用cmd.use_rawinput似乎没有帮助。 还有其他想法吗?

有办法解决吗?

谢谢!

0 个答案:

没有答案
相关问题