2017-09-05 5 views
1

나는이 같은 log4j2 재구성 할 수있는 방법이 없다 :LogManager.shutdown()을 호출 한 후 log4j2를 다시 시작하는 방법은 무엇입니까?

LogManager.shutdown(); // SHUTDOWN log4j2 
    InputStream in = getClass().getResourceAsStream("/my2ndLog4j2.xml"); 
    ConfigurationSource source = new ConfigurationSource(in); 
    Configurator.initialize(null, source); 
    LoggerContext context = (LoggerContext) LogManager.getContext(false); 
    context.reconfigure(); 
    context.start(); // NOT WORK, no log appear anymore... 

그래서 내가 런타임에 생산 로그 설정 및 개발 설정 사이 log4j2 재구성 할 수 있습니다,하지만 난 영원히 LogManager.shutdown(), 정말 종료를 호출 할 때, 결코

다음
org.apache.log4j.PropertyConfigurator.configure(cfgPath); 

그것을 다시 얻을 수 있지만, 어떻게 log4j2 : 사용, 다시 작동되지 context.start()를 얻을 가리키고 나는 log4j1.x에, 오랜 시간 동안 log4j1.x에서이 작업을 수행?

답변

1

당신은 코드가 그렇게 할 충분한 다음 아래 런타임에 log4j2 구성 파일을 변경하려면 - 종료 LogManager 할 필요가 없습니다

Configurator.initialize(null, "my2ndLog4j2.properties"); 

후 다시 시작.

관련 문제