2014-12-09 5 views
0

나는 Spring과 함께 자바 독립형 애플리케이션을 작성 중이다. 로깅을 위해 log4j를 사용합니다.rpmbuild가 log4j에 대한 디버그 정보를 제거하고 있습니까?

<param name="ConversionPattern" value="%d{ISO8601}; %-5p - %C.%M(%L) - %m%n"/> 

이 내 로컬 PC에서 잘 작동합니다

나는 다음과 같은 변환 패턴을 사용합니다. 그러나 RPM (rpmbuild 사용)으로 빌드하고 서버에 배포하면 클래스 이름, 메소드 이름 및 행 번호는? (?)로 표시됩니다.

log4j에는 디버그가없는 것으로 보입니다 클래스 이름, 메소드 이름 및 행 번호를 표시하는 데 필요한 정보.

%debug_package %{nil} 
%define debug_package %{nil} 
%define __strip /bin/true 

아무것도하지만, 그것을 해결하지 :

나는이의 다양한 버전을 추가했습니다.

도움 말?

업데이트 : 나는 항아리를 실행하기 때문으로 보인다 : 자바 -Dlog4j.configuration = 파일 : -jar my.jar 나는 log4j.configuration 소품을 제거

, log4j에가 보았다의 log4j.xml jar 내의 설정 파일을 읽고 클래스 정보를 올바르게 출력합니다. 그래서 외부에서 파일을 정의하는 것이 문제를 만드는 것처럼 보입니다. 하지만 이유는 모르겠습니다.

답변

0

'%'문자는 rpm 매크로 (및 기타)에서도 사용되며 사양 파일을 읽는 동안 콘텐츠가 변경되고 있습니다.

'%'대신 '%%'를 사용하여) 일부를 '%'문자로 이스케이프하여 rpmbuild 파서를 통해 전달해야합니다.

관련 문제