Как настроить файл свойств log4j для печати только журналов класса Listener в консоли?

Я использую класс Listener, который состоит из нескольких методов журнала, как показано ниже, для регистрации тестов TestNG. Я хочу, чтобы в моей консоли печатались только журналы класса слушателя, а полные журналы должны идти в файл FullLog. Полные журналы перемещаются в файл полного журнала, но в консоли я получаю как полные журналы, так и журналы класса прослушивателя. Как настроить файл свойств log4j для того же.

Класс слушателя:

public class SimpleListener implements ITestListener {           
    private static Logger m_log = Logger.getLogger(SimpleListener.class);  

    public void onFinish(ITestContext itestcontext) {          
        m_log.info("onFinish() is called");      }        

    public void onStart(ITestContext itestcontext) {         
        m_log.info("onStart() is called");      
        }        
}

мой файл свойств log4j:

log4j.rootLogger=INFO, FullLogAppender, ConsoleAppender
log4j.logger.TestLog=INFO, BreakPointAppender

#Console Log Appender
log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.ConsoleAppender.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.ConsoleAppender.Target=System.out

#Full Log Appender
log4j.appender.FullLogAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FullLogAppender.File=mfgLogs/FullLogs/FullLog.log
log4j.appender.FullLogAppender=org.apache.log4j.RollingFileAppender
log4j.appender.FullLogAppender.layout.ConversionPattern=%d %-5p %c  %x- %m%n
log4j.appender.FullLogAppender.Append=false Dec 12 12:41:11 IST 2012

Ожидаемый результат в консоли:

11:29:33,159  INFO SimpleListener:15 - onStart() is called
11:29:50,372  INFO SimpleListener:31 - runTest.....
11:30:23,637  INFO SimpleListener:23 - Failed 
11:30:24,402  INFO SimpleListener:12 - onFinish() is called

person user1787641    schedule 27.03.2013    source источник


Ответы (1)


  • удалить приложение консоли из корневого регистратора

     log4j.rootLogger=INFO, FullLogAppender
    
  • добавить регистратор для вашего слушателя

    log4j.logger.xxxx.SimpleListener =INFO, ConsoleAppender
    

xxxx.SimpleListener будет полным именем класса вашего слушателя;

  • если вы не хотите, чтобы журнал прослушивателя отображался в полном файле журнала, установите для аддитивности значение false

    log4j.additivity.xxxx.SimpleListener=false
    
person Jintian DENG    schedule 27.03.2013