2012-11-22 4 views
0

Tomcat 7.x를 웹 서버로 사용하고 있으며 로깅을 위해 java.util.logging 및 JULI를 사용하고 있습니다. 이 Tomcat 서버는 Ubuntu를 실행하는 Amazon EC2 인스턴스를 호스트합니다.Tomcat Catalina 로그를 외부 서버로 내보내기

문제은 (catalina.log 파일의) 로그를보고 싶을 때마다 파일을보기 전에 로컬 컴퓨터에 파일을 복사, 채우고 다운로드하는 과정을 거쳤습니다. . (나노 또는 vi와 같은 유틸리티를 사용할 수 있지만 많은 도움이되지 않습니다.)

내 질문 로그를 일부 외부 서버로 자동으로 내보내고 바로 볼 수 있습니까? Android에서 ACRA 보고서 용 Bugsense와 유사한 일부 기능을 제공합니다.

+0

로그 파일을보기 위해 명령을 적게 사용하는 것이 훨씬 편리합니다. 메모장이나 비슷한 것보다 훨씬 편리합니다. 너는 익숙해 져야한다. 스크롤 위/아래, 스크롤 커서 및 검색 – Anton

답변

2

Tomcat에서 실행할 서블릿을 생성하여 로그를 읽고 웹 브라우저에 표시 할 수 있습니다. 또는 파일이 큰 경우 압축하여 다운로드 할 수 있도록하십시오.

기본 디렉토리를 확인하려면 환경 변수 catalina.base을 사용하고 logs/catalina.log를 수집하십시오.

[업데이트]

가장 좋은 방법은 당신의 배경에 따라 달라집니다. 나는 로그 파일을 읽는 단순화하기 위해 공유지-IO를 사용하고

class LogServlet extends HttpServlet 
{ 
    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 
    { 
     File logFile = new File(System.getProperty("catalina.base"), "logs/catalina.log"); 
     String contents = FileUtils.readFileToString(logFile); 
     PrintWriter out = new PrintWriter(resp.getOutputStream()); 
     out.println(contents); 
    } 
} 

하지만, 그렇지 않으면 그냥 자바 서블릿 프레임 워크 : 당신은 기본, 노 하지요 서블릿을하고 편안 경우, the simplest design that could possibly work 같은 시작합니다.

+0

+1, 아이디어는 나에게 유용 할 것 같습니다. 라이브러리, 블로그 또는 제안으로 이동하는 방법에 대해 알아보십시오. –

+0

업데이트를 참조하십시오. 위와 같은 서블릿 접근 방식을 사용하여 비슷한 작업을 수행했습니다. –

+0

그것을 구현할 것입니다. 제안 된 라이브러리. –

0

rsync 그런 다음 주기적으로 원하는 서버에서 cron 작업을 사용하거나 collectd와 같은 도구를 사용하십시오.

관련 문제