我的python程序的日誌輸出(使用內置日誌記錄模塊,但即使在使用簡單打印時也會出現)部分混亂,如下圖所示。注意:第一行,第一個字仍然是正確的,然後它被混合起來:爲什麼我的日誌記錄混亂了(套接字,線程,信號)?
我試圖以可視化的情況下發生這種情況:
在我的主線程
基本上/ program我開始一個簡單的socketserver.TCPServer來監聽傳入的消息。該服務器運行在自己的線程(QtCore.QThread),所以我的程序不會被阻止。如果其他應用程序發送消息的TCPSERVER的請求處理程序將信息簡單地轉發到使用QtCore.SIGNAL像主線程:
self.emit(QtCore.SIGNAL('received(const QString)'), receivedMessage)
然後程序做了一些分析和計算與該消息並記錄那些,從而產生上面看到的亂碼。在某些時候,日誌恢復正常工作。
我不確定這是否與套接字或線程或兩者有關,但我想這可能是一個常見問題,因此我很感激任何暗示爲什麼發生這種情況。
也許一些潛藏的控制字符?您能否將輸出重定向到文件並提供數據的十六進制數據。 – 2014-08-27 08:34:22
我試圖重定向它之前發佈這個問題,這個工程併產生預期的結果,所以它似乎混在了標準輸出,因爲它混合兩個流或任何其他類型。什麼是hexdump:O?感謝您的回覆。 – br0t 2014-08-27 09:40:56
您是否並行運行多個listerner線程來嘗試發信號通知主線程? – alk 2014-08-27 16:39:18