2017-12-09 19 views
0

JoranConfigurtor를 사용해야 할 때 누군가 나에게 설명해 줄 수 있습니까? logback.xml이 디렉토리에 있습니다. 이 코드에서 무슨 일이 일어나고 있는지 궁금합니다.JoranConfigurator를 언제 사용합니까?

LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();은 컨텍스트를 초기화하지 않습니까? 그래서 조란은 무엇을하고 있습니까?

private static void configureLoggerContext(String logbackConfigFileUrl) { 
    File file = new File(logbackConfigFileUrl); 
    LoggerListener loggerListener = new LoggerListener(); 
    LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); 
    loggerContext.reset(); 
    loggerContext.addListener(loggerListener); 
    JoranConfigurator configurator = new JoranConfigurator(); 
    configurator.setContext(loggerContext); 
    try { 
     configurator.doConfigure(file); 
    } catch (JoranException je) { 
     throw new RuntimeException(je.getMessage()); 
    } 
} 

답변

0

JoranLogback가 의존 단지 구성 라이브러리입니다. https://logback.qos.ch/manual/configuration.html#joranDirectly

+0

내 logback.xml에 태그를 추가했으며 위의 코드를 실행하면 파일 헤더가 두 번 인쇄됩니다. 한 번 초기화되고 두 번째로 조란으로 다시 구성됩니다. – PegahK

+0

글쎄, 로그 백이 똑같은 일을하고있는 것은 분명하다. 로그 백은 자동으로 선택된다. 자동 감지되지 않도록 이름을 변경하십시오. – Antoniossss

0

당신은 응용 프로그램이 단지 (배후 구성자를 사용합니다) 서블릿 환경에 web.xml 같은 것을 사용하는 대신 명시 적 구성을 필요로 할 때 로깅을 구성하는 JoranConfigurator를 사용합니다. 간단한 데스크톱 응용 프로그램을 작성하고 로컬 logback.xml 파일을 사용하여 config (설정) 할 것인지

는 예를 들어, 구성자를 사용하여로드합니다

JoranConfigurator configurator = new JoranConfigurator(); 
     configurator.setContext(context); 
     configurator.doConfigure(new File("path/to/logback.xml")); 

로거 문맥은 Logback의 바로 맥락이다 Logback 구성 요소의 구현이 포함되어 있으므로 클래스에 대한 로거를 만들 수 있습니다. .doConfigure이 호출되면 logback.xml 내부 내용에 따라 컨텍스트가 구성됩니다. LoggerContext의 문서에서

:

LoggerContext는 ILoggerFactory 로거 인스턴스의 제조 소스 역할을 구현한다.