2013-02-19 2 views

답변

1

왜 서버 측 코드가 로그온시 예외로 인쇄되지 않습니까?

예를 들어 log4j를 사용하고 계십니까? 이 작업을 수행하는 타사 소프트웨어가 필요합니다 필요하지 않는 것, 그리고 tracemycode이

편집 돈 만드는 방법을 모르겠어요 : 나는 지금 이해 생각

, 당신이 원하는에게에서 생성 된 예외를 읽을 수있는 방법을 로컬 앱. 어떤 네트워크 통신은 예외를 발생시켜 무한 재귀를 야기 할 수 있기 때문에 조금 위험해질 수 있습니다.하지만보고에서 이러한 예외를 제외하면 괜찮을 것입니다.

이것은 쉽게 작성할 수 있습니다. 예외를 호출하여 서버에 로그를 전송하는 헬퍼 클래스를 생성하기 만하면됩니다.

public class ExceptionReporter { 

public static int sendReport(String aData) 
    try { 
     byte[] myData = aData.getBytes(); 
     /* Uploading the data */ 
     URL myURL = new URL(CONSTANTS.CentralURL); 
     HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection(); 
     myConnection.setDoOutput(true); 
     myConnection.setUseCaches(false); 
     myConnection.setDefaultUseCaches(false); 
     myConnection.setRequestProperty("Content-type", "application/octet-stream"); 
     OutputStream myOutputStream = myConnection.getOutputStream(); 
     myOutputStream.write(myData); 
     myOutputStream.flush(); 
     myOutputStream.close(); 

     int status = ((HttpURLConnection) myConnection).getResponseCode();  
    } 
    catch (Exception e) { 
     LocalLog.log(e.toString());  
    } 


} 

그런 다음 서버 코드/응용 프로그램의 모든 코드에서 당신은 당신의 중앙 서버가 이러한 httpconnections에 가지고 가고, 데이터베이스, 또는 다른 데이터 전송을 절약 할 수 있습니다

try{ 
    // ...do stuff 
} 
catch (Exception e){ 
    ExceptionReporter.sendReport(e.getMessage()); 
} 

그런 다음 사용할 수 있습니다 thread-safe 솔루션입니다.

+0

은 싶어 예외가되는 등 환경 예 (기반 서블릿) 서버 측을 소유 할 좋은 삽입 될 것입니다 나타납니다하지만 그건 내 지점이 아니다 얼마나 자주 알고있다. K 개의 다른 위치에 N 개의 서버가 있다고 상상해 봅시다. 예외는 각 서버에 나타나고 로컬 로깅됩니다. 모든 오류의 단일 출처를 보유하면 큰 도움이 될 것입니다. – FoxyBOA

1

크래시 로그를 보내는 데 필요한 끝점과 데이터 구조가 도움말 섹션에 명확하게 표시되어 있으므로 TraceMyCode를 사용할 수 있습니다.

http://tracemycode.net/help