2008-10-01 5 views
2

현재 RCP Eclipse 응용 프로그램을 개발 중입니다. 로깅 목적으로 나는 log4j보다 SFL4J를 사용한다. 올바른 로거 (LoggerFactory.getLogger ... logger.debug ...)를 지정할 수 있기 때문에 내 자신의 코드에서 제대로 작동합니다. 그러나 어떻게하면 모든 플러그인 로그를 동일한 위치로 리디렉션 할 수 있으며, 다른 rcp 플러그인의 모든 예외를 내 log4j-LogFile에서도 볼 수 있습니다. 로그 파일에 캐치되지 않은 예외를 기록하려면 어떻게합니까?리플렉션 ILog 메시지

ILog에 대한 정보를 들었지만이를 log4j/slf4j 구현으로 리디렉션하는 방법을 알지 못합니다.

그래서 모든 플러그인 메시지를 하나의 로그 파일에 기록하는 가장 좋은 방법은 무엇입니까?

답변

4

전체 플랫폼에 대한 로그 이벤트를 캡처하려면 ILogListener 인스턴스를 만들고 Platform.addLogListener (ILogListener)를 사용하여 등록하십시오.

잡히지 않는 예외를 로그하는 방법은, 새로운 ThreadGroup를 작성해, uncaughtException (Thread t, Throwable e)를 오버라이드 (override) 해 예외를 로그하는 것입니다. 그런 다음 해당 스레드 그룹에서 새 스레드를 시작하고 그 안의 다른 모든 작업을 수행해야합니다. 나는 IPlatformRunnable을 구현 한 run 메소드에서 이것을 처리한다.