로깅 모듈을 사용하여 서로 이야기하는 두 개의 HTTP 서버가 있습니다.로깅 모듈과 함께 로그 보내기 get stuck
다음logger = logging.getLogger('cs')
logger.setLevel(logging.DEBUG)
logger.addHandler(HTTPHandler("localhost:7777", "/"))
logger.warning('log from serverA')
, 포스트 MSG와 서버 B가 응답 :를 디버깅하는 동안
class myHandler(BaseHTTPRequestHandler):
def do_GET(self):
logger = logging.getLogger('mach')
logger.setLevel(logging.DEBUG)
logger.addHandler(HTTPHandler("localhost:8888", "/",method='POST'))
print "1111"
logger.critical('POST from 7777')
print "2222"
return
, I는 "1111"인쇄 볼
serverA = SocketServer.TCPServer(("", 8888), myHandler)
serverB = SocketServer.TCPServer(("", 7777), myHandler)
제 ServerA에이 서버 B에 GET 요청을 보낸다 out이지만 "2222"는 아니며 인쇄 명령 인 첫 번째 줄인 serverA의 do_POST 메소드에서 인쇄되지 않습니다. 그러나 wireshark를 사용하여 검사했을 때 포트 8888과 해당 POST 메시지에 TCP 패킷이 표시되는 것을 볼 수 있습니다.
그래서 serverA에서 어떻게 표시되지 않습니까?
do_POST 메소드에 대해 작성했지만 코드에는이 메소드가 없습니다 (do_GET 만 해당). – akozin
예,하지만 serverB의 myHandler에는 do_POST 함수가 있습니다. 그리고 어쨌든, POST 대신 A에서 B로 GET을 시도해 보았습니다. 여전히 멈췄습니다. serverA에서 첫 번째 인쇄를 볼 수 없습니다. POST에 문제가 없습니다. – user1047069
POST 요청을 명령 줄을 통해 보내보십시오. HTTP 서버가 작동하는지 여부 : $ curl -v -d "POST from 7777"http : // localhost : 8888. 서버에서 인쇄하는 메시지는 터미널에 있어야합니다. – akozin