22.비상 상황시의 클라이언트의 로그

클라이언트가 서버와 통신을 하다보면, 알수 없는 원인 혹은 외부의 원인으로 인해, 접속이 끊어질때가 있습니다. ProudNet 내부의 로그는 서버에게 알려 쌓도록 하고 있지만, 이미 접속이 끊어졌다면 클라이언트의 로그를 서버가 받을 수 없게됩니다. 그럴때 이기능이 유용합니다. 따로 로그서버와의 연결을 가지고있기 때문에 기존연결이 끊기더라도 클라이언트의 비상로그를 받을 수 있습니다.

// NetServer를 시작할때 EmergencyLog의 line count 지정
CStartServerParameter p1;
p1.m_clientEmergencyLogMaxLineCount = 10;

server->Start(p1);

// 클라이언트의 비정상 종료시점 혹은 서버와의 연결 종료이벤트(OnLeaveServer)등에서 호출

client->SendEmergencyLogData(serveraddr, serverport);

이 과정 뒤에 SendEmergencyLogData를 받을 서버를 생성해주어야합니다. 클래스 이름은 CEmergencyLogServer 입니다. 생성방법은 MinidumpServer의 생성방법과 매우 비슷합니다. minidump_sample을 참고하십시오. 로그파일은 logmx 포맷으로 저장되기때문에 해당 로그툴을 이용하면 쉽게 로그를 분석할수 있습니다. (http://www.logmx.com/)