2011-11-04 5 views
0

로깅을 위해 log4j를 사용하는 j2ee 웹 응용 프로그램이 있습니다. 관리자 페이지에 로그 뷰어가 있어야합니다. 이렇게하면 사용자가 응용 프로그램 UI에서 log4j 로그를 볼 수 있습니다. 사람이 어떻게 자바에서 구현할 수 있습니다, 어쩌면, - 실시간 스크롤 로그가 좋을 것, - 그렇지 않으면 수동으로 새로 고침과 함께 로그의 마지막 500 라인을 말할 수 있습니다. 파일 조작을 사용하는 후자의 문제점은 log4j가 새 파일을 생성하기 전에 로그 파일의 크기가 10MB가 될 수 있기 때문에 얼마나 오래 새로 고침 될지 모르겠다는 것입니다.로그보기 웹 응용 프로그램의 추적

가장 좋은 방법은 무엇입니까? 모든 포인터가 좋을 것입니다 .. 감사합니다

+0

Linux에서 실행 중입니까? 'tail -f'에서 스트림을 파이프 할 수 있습니다. – Bringer128

+0

예 서버가 유닉스 서버입니다. tail -f를 사용하여 유닉스 터미널의 로그를 볼 수 있지만 브라우저의 응용 프로그램 페이지에서이를 보는 방법. – Ash

+0

응용 프로그램에서 네이티브 tail -f 명령을 호출 한 다음 페이지에 출력을 표시 할 수 있습니까? – Ash

답변

0

이 작업을 수행 할 수 있습니다. 다음 구문을 살펴 봐야합니다.

  1. log4j.xml에서 귀하의 appliction을 위해, appender가 공개적으로 액세스 할 수있는 폴더로 전송하고 있는지 확인하십시오.

  2. 보기 응용 프로그램에서 새로 고칠 때마다 (페이지의 새로 고침 버튼) 서버로 이동하여 파일을 읽고 내용을 페이지로 분출하십시오.

  3. 더 나은 읽기 요청은 JMS 구현 뒤에 있어야하므로 앞에있는보기 요청을 차단하지 않고 백그라운드에서 읽을 수 있습니다. IE는 파일이 꽤 큰 경우 서블릿에 대한 요청을 차단하지 않습니다. 일단 읽기가 끝나면, 문자열의 발생을 검색하여 파일 내용 (아마도 출력 날짜와 시간 소인)을 절단 할 수 있습니다. 그것은 memmory intensive가 될 것입니다, 그러나 그것은 꽤 많은 시간을 끝냈습니다.

0

IMHO 당신은 C와 같은 낮은 수준에서 파일을 관리 할 수 ​​없기 때문에 전체 파일을 읽지 않고 파일에서 마지막 X 행을 읽을 수 없습니다.

그러나 Log4j는 로그를 데이터베이스 (JDBCAppender)로 보내고 데이터베이스에서 로그를 쉽게 관리 할 수 ​​있습니다.

0

나머지 api/url을 사용하여 서비스 로그에 액세스 할 수 있습니다. 사람들이 쉽게 디버그/북마크/새로 고침 할 수 있습니다.