개미로 프로젝트를 만들고 있는데, log4j.xml
파일을 .jar
에 직접 묶어서 배포하는 것이 더 간단합니다. .jar
에 파일을 성공적으로 추가했지만 인식되지 않습니다.번들로 제공되는 log4j.xml 파일을 .jar에서 인식하고 사용하는 방법은 무엇입니까?
log4j
에서 파일을 인식하고 사용하려면 어떻게해야합니까? 나는 Java에 익숙하지 않으므로 가능한 경우 예제가있는 명확한 설명이 좋습니다!
개미로 프로젝트를 만들고 있는데, log4j.xml
파일을 .jar
에 직접 묶어서 배포하는 것이 더 간단합니다. .jar
에 파일을 성공적으로 추가했지만 인식되지 않습니다.번들로 제공되는 log4j.xml 파일을 .jar에서 인식하고 사용하는 방법은 무엇입니까?
log4j
에서 파일을 인식하고 사용하려면 어떻게해야합니까? 나는 Java에 익숙하지 않으므로 가능한 경우 예제가있는 명확한 설명이 좋습니다!
이것은 어떻게 든 작동합니다.
static // loads before anything else can
{
/*
* If log4j.configuration system property isn't set,
* then assume I'm inside a jar and configure
* log4j using the config file that shipped in the jar.
*/
if (System.getProperty("log4j.configuration") == null)
{
URL url = ClassLoader.getSystemResource("log4j.xml");
DOMConfigurator.configure(url);
}
}
응용 프로그램은 어떻게 실행됩니까?
JAR이 클래스 경로에 있으면 파일에 포함 된 모든 파일도 클래스 경로에 있습니다. 즉, log4j는 some.jar!log4j.xml
, 을 찾는데 아무런 문제가 없어야합니다. 시작하려면some.jar
이 클래스 패스에 있어야합니다.
클래스 경로의 다른 위치에서 다른 log4j 구성 파일을 선택합니까? 응용 프로그램 시작시 -Dlog4j.debug
을 추가하여 log4j가 사용중인 구성 파일에 대한 디버깅 정보를 인쇄하도록 할 수 있습니다. 다른 JAR에 번들 된 다른 구성 파일이 먼저 발견 될 가능성이 높습니다.
'java -jar myapp.jar'; 단일 jar 파일을 사용자에게 제공하므로 모든 jar 파일에 jar 파일이 포함됩니다. –
log4j.xml을'MANIFEST.MF' 파일의'Classpath :'속성에 명시 적으로 포함시켜야한다고 생각합니다. '-jar'로 프로세스를 시작하는 것이 "normal"과 약간 다릅니다. –
어떻게 든요? 네 말 뜻은? –