속성 파일이 항아리에있는 경우에, 당신은 같은 것을 할 수있는 :
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
안녕 덕분에, 우리는이 정적 기능을 작성하는 경우, 다음 "getClass (: 더 쉬운 방법은과 같이 새 로그 파일로 항아리에 수업에서 아무것도 보낼 log4j에 파일을 config (설정)하는 것) .getResourceAsStream ("/ log4j.properties") "행은 작동하지 않습니다. 다른 작업을 수행 할 수 있습니까? – Pedantic
당신은 단지 클래스 이름을 사용할 수 있습니다. 항상 이상적이지는 않지만'MyClass.class.getResourceAsStream ("/ log4j.properties")'를 할 수 있습니다. 만약 당신이 왜 그때 당신은 반사 또는 스택 추적을 사용하여 볼 필요가 무엇을 위해 캔트 - getStackTrace - Thread.currentThread(). getStackTrace() [0] .getClass(). getResourceAsStream ("/ log4j.props")' 원하는 정확한 색인을 결정하기 위해 실험을해야합니다. – NightWolf