log4j 를 분석하다가, log4j 의 lf5 의 예제에서는, properties 파일을, 패키지 내부에 넣고,
예를 들어, 소스의 패키지가 lf5.sample 일 때, "/lf5/sample/log4j_sample.properties" 로 접근이 되는데, 내가 만든 클래스 내에서는, PropertyConfigurator.configure("/simpleTest/myapp2.log4j.properties"); 하면, 계속 파일 없다고 나오길래, lf5 의 예제 코드를 보니, 이런 부분이 있었더라는..
우선, 사용하려는 파일의 위치는 아래와 같고
잘 되는 소스코드는 이렇다.. 아래의 코드에서 무식하게 그냥 PropertyConfigurator.configure("/simpleTest/myapp2.log4j.properties"); 해서 될게 아니다라는걸 깨닿게 된다.
public static final String resource = "/simpleTest/myapp2.log4j.properties"; public static URL configurationFileURL = MyApp2.class.getResource(resource); public static void main(String[] args) { /** * 아래와 같이, property 파일을 직접 명시해주거나, 아니면, * src 의 root 에, log4j.properties 이름으로 두고, Configurator 설정을 안하면 * 된다~! */ PropertyConfigurator.configure(configurationFileURL);
위에서 public static URL configurationFileURL = MyApp2.class.getResource(resource); 요 부분이 핵심이다.
패키지 내부에 있는 리소스를 찾아서, URL 로 리턴해주는데,
logger.debug("Config file URL : " + configurationFileURL); logger.debug("Config file URI : " + configurationFileURL.getFile());
위 코드로 확인해보면, 이렇게 나온다.
Config file URL : file:/E:/JavaProject/webproject/log4jtest/build/classes/simpleTest/myapp2.log4j.properties Config file URI : /E:/JavaProject/webproject/log4jtest/build/classes/simpleTest/myapp2.log4j.properties
참 좋은 Method 같네. 담부터는 잘 활용해 먹어야 겠구만.
반응형
'Software Development > JavaSE&EE' 카테고리의 다른 글
JSP 페이지를 직접 URL로 접근하지 못하게 하려면? (꽁수) (0) | 2009.10.16 |
---|---|
변수명 표기법 종류 (0) | 2009.10.12 |
OAuth - Open Source 보안인증 API (0) | 2009.09.23 |
RuntimeException 의 특성 (0) | 2009.08.12 |
log4j 기본 익히기 (1) | 2009.07.26 |