2013-02-19 4 views
0

저는 java에서 상당히 새로운 것으로 현재 Struts 1.3에서 작업하고 있습니다. 내 질문은 자바와 더 관련이있다.Java : 서버 로그가있는 예외 보고서 도움말

다음 시나리오와 나는 최선의 방법을 따르는 지 잘 모르겠습니다.

내 프로젝트에서 stacktrace를 복사하고 데이터베이스 테이블에 삽입 할 때 오류, 예외, 날짜, 사용자 등의 필드가있는 "errorlog"테이블이 있다고 말하는 기능을보고 싶습니다. 하지만 이제해야 할 일은 다음과 같습니다. 예외가 발생했을 때 서버 로그를 사용하여 예외가 발생한 패키지 이름, 파일, 메소드 및 행 번호를 식별해야합니다. 그러나 문제는 로그가 당신에게 예외, 파일과 줄 번호를 준다이다 그러나 또한 아래에 주어진 등 HttpServlet.service에서 나의 패키지에없는 오류 (HttpServlet.java:710)이 포함되어

java.lang.NullPointerException 
com.candidate.query.CandSearchAction.execute(CandSearchAction.java:34) 
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) 
org.apache.struts.action.RequestProcessor.proc ess(RequestProcessor.java:274) 
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 

위의 경우 CandSearchAction.java 줄 번호 34에서 null 포인터 예외가 발생했습니다. 이제 차별화 방법 또는 내 java/jsp 파일을 가리키는 줄만 추출하여 필터 할 수 있습니다. 따라서.

누구나이 상황이나이 문제에 접근하는 방법에 대한 도움을받을 수 있습니까? 내가 사용할 수있는 라이브러리 나 저를 도울 수있는 라이브러리가 있습니까? 나를 도와 줄 응답을 기다리는 중입니다.

답변

0

코드가 예제에서 사용한 것과 동일한 기본 구조를 따르는 경우 패키지 이름 중 1 개부터 시작하여 스택 추적을 구문 분석하고 해당 행만 사용할 수 있습니다.

+0

내 프로젝트의 모든 패키지를 식별하거나 나열하여 stacktrace와 비교할 수 있습니까? 내가 사용해야하는 특정 방법이나 API가 있습니까? – user1629770

+0

Exception.getStackTrace()는 StackTraceElements의 배열을 반환합니다. 첫 번째 이름 (예외 이름)을 가져온 다음 요소 1에서 시작하는 경우 (<패키지 이름 중 하나>)를 볼 수 있습니다. 예인 경우 로그인하고, 그렇지 않으면 루프를 종료하고 계속 진행하십시오. 불행히도 라이브러리 이름이나 API 이름을 모르는 라이브러리 나 API는 모른다. 필자의 본능은 하드 코딩 된 이름 목록을 반환하는 상수 클래스를 만드는 것이므로 적어도 유지 관리해야하는 곳은 단 하나뿐입니다. –

+0

예, 제가 지금하고있는 일은 ..하지만 같은 결과를 얻으려면 더 좋은 접근 방법이있을 거라고 생각했습니다. 답장을 보내 주셔서 감사합니다. Eric !! – user1629770