2011-08-10 6 views
4

로그 파일 이름이 $ {System-name} log.log와 같아야하는 log4j 구성이 필요합니다. 즉, 응용 프로그램이 모든 시스템에서 실행되고 구성 파일이나 코드를 변경하지 않은 경우입니다. 언급 한대로 로그 파일 이름을 생성해야합니다. 덕분에 . 와log4j 로그 파일을 동적으로 변경하는 방법은 무엇입니까?

<param name="File" value="${my.logsDir}Default.log"/>d 
+0

참조 : http://stackoverflow.com/questions/201188/using-system-environment-variables-in-log4j-xml-configuration –

답변

2

나는 이런 식으로 할 ${property} 구문입니다. System의 API를 참조하거나 System.getProperties().list(System.out)로 나열 기본 속성의 전체 목록

"os.arch"  Operating system architecture 
"os.name"  Operating system name 
"os.version" Operating system version 

포함 기본적으로 정의 된 시스템 특성의 여러 가지가 있습니다.

기본 속성을 사용하지 않으면 System.setProperty(property, value)을 사용하여 자신 만의 속성을 추가해야합니다.

+0

log4j.xml 파일의 관련 상대 경로를 설정하는 방법을 알려주십시오. 예 : 절대 경로가 아닌 DOMConfigurator.configure ("../ log4j.xml"). 감사. – Channa

+1

작성한대로 상대 경로를 정확하게 설정할 수 있습니다 ("../log4j.xml"). log4j.xml은 작업 디렉토리와 상대적으로 다릅니다. –

+0

의견에 감사드립니다. 나는 ContextClassLoader로 다음과 같이 얻었습니다. DOMConfigurator.configure (Thread.currentThread(). getContextClassLoader.getResource ("."). getPath() + "log4j.xml") – Channa

2

사용할 수있는 Java 시스템 등록 정보 : 내가 변수를 사용의 log4j.xml에

System.setProperty("my.logsDir", vcsLogsDir); 
DOMConfigurator.configure("c:/log4j.xml"); 

2) :
1) 초기화 로거 :

관련 문제