2011-09-26 3 views
0

클라이언트에 제공해야하는 jar 파일을 만들고 있지만 클라이언트가 일부 통합 작업을 수행 할 때 jar 파일에 대한 별도의 로거를 요구하고 있습니다.jar 파일을위한 별도의 로그 파일을 생성해야합니까?

누구나 하나의 jar 파일에 대한 로거를 만들 수있는 방법을 제안 할 수 있습니다. 동일한 jar 파일에 log4j.properties를 넣을 수는 있습니다.

웹 로직 서버를 사용하고 있습니다. 이 jar 파일을 배포하지 않고 domain lib 폴더에 보관합니다.

감사

답변

1

속성 파일이 항아리에있는 경우에, 당신은 같은 것을 할 수있는 :

Properties props = new Properties(); 
props.load(getClass().getResourceAsStream("/log4j.properties")); 
PropertyConfigurator.configure(props); 

위의 log4j.properties가 jar 파일의 루트 폴더에 있다고 가정을 . 문제는이 경우에 사용자의 요구에 대해 작동하지 않는 경우

당신은 항상 사용할 수 있습니다

-Dlog4j.configuration=log4j_for_some_jar.properties 

를 다른 응용 프로그램뿐만 아니라의 log4j를 사용하는 경우.

log4j.rootLogger=ERROR, logfile 

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.logfile.datePattern='-'dd'.log' 
log4j.appender.logfile.File=log/radius-prod.log 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n 

log4j.logger.foo.bar.Baz=DEBUG, myappender 
log4j.additivity.foo.bar.Baz=false 

log4j.appender.myappender=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.myappender.datePattern='-'dd'.log' 
log4j.appender.myappender.File=log/access-ext-dmz-prod.log 
log4j.appender.myappender.layout=org.apache.log4j.PatternLayout 
log4j.appender.myappender.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n 
+0

안녕 덕분에, 우리는이 정적 기능을 작성하는 경우, 다음 "getClass (: 더 쉬운 방법은과 같이 새 로그 파일로 항아리에 수업에서 아무것도 보낼 log4j에 파일을 config (설정)하는 것) .getResourceAsStream ("/ log4j.properties") "행은 작동하지 않습니다. 다른 작업을 수행 할 수 있습니까? – Pedantic

+2

당신은 단지 클래스 이름을 사용할 수 있습니다. 항상 이상적이지는 않지만'MyClass.class.getResourceAsStream ("/ log4j.properties")'를 할 수 있습니다. 만약 당신이 왜 그때 당신은 반사 또는 스택 추적을 사용하여 볼 필요가 무엇을 위해 캔트 - getStackTrace - Thread.currentThread(). getStackTrace() [0] .getClass(). getResourceAsStream ("/ log4j.props")' 원하는 정확한 색인을 결정하기 위해 실험을해야합니다. – NightWolf

관련 문제