2010-07-23 6 views
2

개미로 프로젝트를 만들고 있는데, log4j.xml 파일을 .jar에 직접 묶어서 배포하는 것이 더 간단합니다. .jar에 파일을 성공적으로 추가했지만 인식되지 않습니다.번들로 제공되는 log4j.xml 파일을 .jar에서 인식하고 사용하는 방법은 무엇입니까?

log4j에서 파일을 인식하고 사용하려면 어떻게해야합니까? 나는 Java에 익숙하지 않으므로 가능한 경우 예제가있는 명확한 설명이 좋습니다!

답변

1

이것은 어떻게 든 작동합니다.

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); 
    } 
} 
+0

어떻게 든요? 네 말 뜻은? –

0

응용 프로그램은 어떻게 실행됩니까?

JAR이 클래스 경로에 있으면 파일에 포함 된 모든 파일도 클래스 경로에 있습니다. 즉, log4j는 some.jar!log4j.xml, 을 찾는데 아무런 문제가 없어야합니다. 시작하려면some.jar이 클래스 패스에 있어야합니다.

클래스 경로의 다른 위치에서 다른 log4j 구성 파일을 선택합니까? 응용 프로그램 시작시 -Dlog4j.debug을 추가하여 log4j가 사용중인 구성 파일에 대한 디버깅 정보를 인쇄하도록 할 수 있습니다. 다른 JAR에 번들 된 다른 구성 파일이 먼저 발견 될 가능성이 높습니다.

+0

'java -jar myapp.jar'; 단일 jar 파일을 사용자에게 제공하므로 모든 jar 파일에 jar 파일이 포함됩니다. –

+0

log4j.xml을'MANIFEST.MF' 파일의'Classpath :'속성에 명시 적으로 포함시켜야한다고 생각합니다. '-jar'로 프로세스를 시작하는 것이 "normal"과 약간 다릅니다. –

관련 문제