2016-09-23 4 views
0

내 부두 8.1 응용 프로그램에 포함 된 사용하고 있습니다. QueuedThreadPool을 사용하고 ServletContextHandler를 가진 HandlerCollection을 가지고 있습니다. 내 문제는 비록 내 로그에서 볼 수있는 풀의 이름을 설정하더라도 각 요청 당 [myPrefixName - 1233/theFullEndpoint/xxx/yyy]와 같은 스레드 이름이 수신 됨부두 8 QueuedThreadPool 스레드 이름

나는 스레드 이름 안에 매개 변수가있는 전체 끝 점이 존재하지 않도록합니다. 나는 logback 설정을 시도했지만 logback이 스레드 이름의 마지막 x 문자 만 보여줄 수 있다는 것을 알고있다. 스레드 이름에서 엔드 포인트 이름을 제거하도록 jetty에 어떻게 지시 할 수 있습니까?

+0

부두 8은 EOL (수명 종료)입니다. 업그레이드를 고려하십시오. –

답변

0

org.eclipse.jetty.server.handler.DebugHandler이 활성화되어 있고 활성화되어 있으며 비활성화/제거하면 스레드 이름이 정상으로 돌아갑니다.

+0

기본적으로 활성화되어 있습니까? 방금 DefaultHandler를 추가했지만이 DebugHandler를 추가하지 않았습니다. – Raffaele

+0

부두 8은 EOL입니다. 기본값은 고대력입니다. 실제로 답변을 알기 위해서는 소스 아카이브를 파헤쳐 야합니다. 뭔가 'Thread.setName()'을 설정 중입니다. 전통적으로'DebugHandler'만이 그렇게했습니다. * 참고 : Jetty 프로젝트는 Jetty 8.1.x (이후 4 가지 주요 버전이 출시되었으며, 2 가지가 추가로 활성화되었습니다)를 넘는 천개 이상의 커밋이 있습니다. * –

+0

소스 코드를보고 AbstractHttpConnection에서 스레드 이름이 변경되었습니다. 로거가 "디버그"하도록 구성된 경우에만 가능합니다. 가장 간단한 해결책은 디버그 수준에서 로깅하지 않는 것입니다. 그렇지 않으면 AbstractHttpConnection의 동작을 무시하거나 자체 로거 구현을 작성할 수 있습니다 (isDebugEnabled 메서드가 사용되는 위치를 확인해야합니다). 귀하의 제안에 감사드립니다. 업그레이드하고 싶습니다만, 당분간은 고객의 제약으로 인해 할 수 없습니다. – Raffaele