2011-09-28 5 views
1

내 로그 4j 속성 파일에 대한 입력을 참조하여 외부에서 입력 명령을받을 때 목록에서 조회하여 그에 따라 작동하도록합니다.로그 4j 입력을 참조하십시오

이는 모습입니다 같은 :

$ {LOG_FILE_NAME}가 D-스위치 지금은 정수가 목록에 참조

에 전달 된 정수

log4j.appender.R.File=/home/oracle/conf/ATL_${log_file_name}/ATL_${log_file_name}.dlg 

:

1 - 식품

2 과일

3 야채

$ {LOG_FILE_NAME가} 일 때, 명령이 될 것 같은 것을 :

log4j.appender.R.File =/가정/신탁/conf의/ATL_food/ATL_food.log

어떻게 내가 할 수있는 속성 파일에 설정 하시겠습니까?

답변

1

log4j 등록 정보 파일에는 이러한 기능이 없습니다.

그러나, 프로그램 루트 로거에 파일 어 펜더를 추가 아래의 예를 볼 수 있습니다

import java.io.IOException; 
import org.apache.log4j.*; 

public class LogTest { 
    public static void main(String args[]) throws IOException { 
     String category = System.getProperty("logCategory"); 
     Logger rootLogger = Logger.getRootLogger(); 
     PatternLayout layout = new PatternLayout("%d{ISO8601} [%t] %-5p %c %x - %m%n"); // replace with your layout 
     String logFileName = "/home/oracle/conf/ATL_" + category + "/ATL_" + category + ".dlg"; 
     rootLogger.addAppender(new FileAppender(layout, logFileName, false)); 
    } 
} 

당신은 명령 행에서 VM 매개 변수 -DlogCategory=food를 전달합니다. 직접 숫자 대체를 할 수 있습니다.

관련 문제