jar 파일과 동일한 디렉토리에서 log4j2.xml 파일을로드합니다
문제
i Directory / 릴리스 / operation.jar 포함뿐만 아니라 log4j2.xml 파일이 있습니다.java -jar application.jar
로 응용 프로그램을 실행하면 log4j2.xml 구성 파일을 선택하지 않습니다.그래서 XML 파일의 위치를 명시 적으로 지정하여 XML 파일의 위치를 명시 적으로 지정하면 작동합니다.
java -Dlog4j.configurationFile=log4j2.xml -jar application.jar
JAR이 상주하는 것과 동일한 디렉토리에서 항상 구성 파일을 항상 선택하도록 프로그램을 지시 할 수있는 방법이 있습니까?프로그램을 가능한 한 간단하게 유지하고 사용자가 응용 프로그램을 실행할 때 Awkward System 속성을 설정할 필요가 없습니다.
해결책
System 속성이 없으면 Log4J-2.0은 클래스 경로에서 log4j2.xml 파일을 찾습니다.그래서 저는 다음과 같이 질문을 읽고 있습니다. java -jar application.jar
로 앱을 어떻게 시작하고 classpath에 log4j2.xml 파일을 가져올 수 있습니까?
이것은 Application.jar 파일의 Manifest ( http://docs.oracle.com/javase/8/docs/technotes/tools/windows/findingclasses.html#sthref8 ).
물론 application.jar 파일에 log4j2.xml 파일을 포함 할 수 있습니다.
이를 방지하려면 jar 파일의 매니페스트의 Class-Path
항목에 log4j2.xml 파일이 포함 된 디렉토리를 추가 할 수 있습니다.(이것은 "현재"현재 디렉토리 일 수 있습니다.)