2009-06-19 8 views
7

Eclipse에서 일부 JUnit 테스트를 실행 중이며 Java 로깅 API를 사용하여 XML 로그 파일을 생성하고 있습니다. (java.util.logging). 원시 XML을 읽는 것 외에 Eclipse에서이 XML 로그 출력을 볼 수있는 쉬운 방법이 있습니까? 특히 나는 다른 로그 메시지가 어떤 스레드에서 왔는지 쉽게 알 수 있기를 원합니다.Eclipse에서 Java 로그 파일을 보는 방법

답변

0

이클립스가 스레드에 대해 어떻게 알 수 있는지 알 수 없습니다. XML이라면 XPath를 사용하여 스레드 메시지를 찾아서 인쇄 할 수있는 파서를 작성해야합니다. 그러나 그것은 당신에게 달려 있습니다. Eclipse는 당신의 마음을 읽을 수 없습니다.

log4j에서 생성 한 XML 스트림을 가져 와서 원하는 스레드를 가져올 수있는 XSL-T 스타일 시트를 찾아야합니다.

+0

의 저자입니다. http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html#2.4 –

1

필자는 항상 java.util.logging/Eclipse 조합에 대해 Apache Chainsaw과 같은 것을 찾고 싶었습니다. 즉, 포트를 청취하는 Eclipse의 로그 뷰어와이를 직접 작성하는 java.util.logging.Handler 구현입니다. 그러나 나는 그런 것을 아직 발견하지 못했고 하나도 쓰지 못했다. 지금까지는 콘솔에 로그온하기에 적합한 일반 텍스트 형식을 사용했습니다. 우아하지 않고 편리한 필터링 옵션도 없지만 일을 처리합니다. 사용자 정의 포맷터 작성은 전혀 어렵지 않습니다.

Eclipse의 Test and Performance Tools Platform Project (약어보다 이름이 더 나쁘다)에서 로그 파일을 분석하는 데 일부 지원이 있습니다. 나는 그것을 시도한 적이 없지만 그것은 당신에게 유용 할 것입니다.

+0

Peter를 참조하십시오. SLF4J/Logback에 관한 필자의 노트를 참조하십시오. Thorbjørn이 현재의 logback 릴리스를 사용할 때 버그가 있음을 지적했지만 (Ceki는 해결책을 제시하고 있다고 말합니다) 바로이 작업을 수행합니다. –

+0

나는 프로덕션 코드에 종속성을 추가하지 않는 것을 선호합니다. 특히 SLF4J는 포인트 릴리즈 사이에 호환되지 않는 API 변경으로 인해 불타 버렸고, Maven 기반 프로젝트 중 하나의 간접적 인 종속성으로 인한 문제를 일으켰습니다. java.util.logging은 완벽하지 않을 수도 있지만 대안으로 인해 추가 된 비용과 위험에 대한 정당성은 여전히 ​​보이지 않습니다. –

1

로그 파일을 실시간으로 볼 수있는 훌륭한 도구는 baretail (기본적으로 Windows의 tail -f)이지만 실제로 도움이 될 수있는 특정 패턴을 강조 표시하도록 설정할 수 있습니다. 무료 버전 here을 찾을 수 있습니다.

+0

링크를 사용해 주셔서 감사합니다. – akf

1

정확히 무엇을하려 하느냐에 따라 로깅 하위 sys에 대한 좋은 로깅 설정이 필요할 수 있습니다.

내가 최근에 사용했던 프레임 워크는 내가 어떤 보게 다음의 log4j 설정을 제공하여 로그인 할 수 SLF4J를 사용하는 스레드 출력 무엇을 : 내 경우

log4j.rootLogger = trace, default 
log4j.appender.default = org.apache.log4j.ConsoleAppender 
log4j.appender.default.layout = org.apache.log4j.PatternLayout 
log4j.appender.default.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n 

내가에 다음과 같은 출력을 얻을 내 junit 테스트를 실행할 때 Eclipse의 Console 탭.

0 [pool-1-thread-1] INFO com.example.BaseTest - Server listening on port 9090 
35 [NioProcessor-6] INFO org.apache.mina.filter.logging.LoggingFilter - CREATED 
35 [NioProcessor-1] INFO org.apache.mina.filter.logging.LoggingFilter - CREATED 
4

나는 Logback 로깅 구현과 결합 SLF4J 로깅 API를 사용했습니다. SLF4J는 java.util.logging, log4j, jakarta commons logging 및 SLF4j API의 로그 메시지를 공통 중간 양식으로 맵핑하도록 구성 할 수 있습니다. 다른면에서 메시지는 java.util.logging, log4j 또는 Logback을 통해 생성 될 수 있습니다. 다양한 로깅 API를 사용하는 구성 요소가있는 경우 특히 유용합니다.

로그백에 대한 좋은 점 중 하나는 로그 메시지의 사본을 Eclipse plug-in으로 보내도록 구성 할 수 있다는 것입니다. 플러그인을 사용하면 다양한 방법으로 로그 파일을보고 필터링 할 수 있습니다. 메시지에는 생성 된 스레드가 포함되어 있으므로 체크 아웃해야하는 소리가납니다.

+0

최신 버전의 logback에서 플러그인이 작동하지 않습니다. –

+0

새롭고 향상된 버전에 대한 지속적인 연구가 있지만 사실입니다. – Ceki

2

나는 당신이 찾고 있던 것과 똑같은 것을 찾고 있다고 생각합니다. UtilLogger4E를 찾았지만 일부 누락 된 기능이 있고 opensource가 아니기 때문에 자체 프로젝트 (EDevTools LogViewer)를 시작했습니다.

파일이나 구성 가능한 소켓에서 Java Util Logging XML 로그를 읽고 테이블에 컬러로 표시하며 여러보기 인스턴스를 통해 한 번에 둘 이상의 로그를 표시 할 수 있습니다.

Java Util 로깅은 로그를 소켓 (SocketHandler)에 보내는 기본 제공 기능이 있으며 구성 파일에서만 설정해야합니다.

당신은에있는 LogViewer 한 번 봐 걸릴 수 있습니다 : 당신은 이클립스를 기반으로하지 않는 로그 뷰어를 사용하려면 http://sourceforge.net/projects/edevtools/

2

을, 나는 당신에게 OtrosLogViewer를 권장합니다. java.util.logging XML 형식과 SimpleFormat을 가져올 수 있습니다.

면책 조항 : 나는 스레드가 java.util.logging의 출력의 일부입니다 OtrosLogViewer

관련 문제