use websocket-client with smarter exception usage
change log to a dictionary