我的python程序的日志输出(使用内置的日志模块,但即使使用简单的打印也会发生)部分混乱,如下图所示。注意第一行,第一个单词仍然是正确的,然后就混淆了:
我试着想象发生这种情况的情景:
基本上在我的主线程/程序中,我启动了一个简单的socketserver.TCPServer监听传入的消息。那个服务器在它自己的线程上运行(QtCore.QThread文件)所以我的程序没有被阻止。如果其他应用程序发送消息,TCPServer的请求处理程序将使用QtCore.信号比如:
self.emit(QtCore.SIGNAL('received(const QString)'), receivedMessage)
然后,程序对该消息进行一些解析和计算,并将其记录下来,从而产生上面看到的胡言乱语。在某个时候,日志恢复正常工作。在
我不确定这是否与套接字或线程或两者有关,但我想这可能是一个常见的问题,因此我很感谢任何提示,为什么会发生这种情况。在
我想我已经找到了问题所在:
当外部应用程序想要发送消息时,它总是创建一个新的客户端套接字,连接到服务器,发送消息,然后关闭客户端套接字。在
sock.close()
似乎没有立即关闭,docs说我应该先打电话给{time.sleep(0.5)
来修复日志记录问题,但是我做了如下操作:也许有更好的方法。在
相关问题 更多 >
编程相关推荐