файл log4j.properties -несколько регистраторов в одном классе

Я хотел бы иметь два разных регистратора log4jв своем приложении, и чтобы не было «перекрытия» между контентом, который они пишут в свои журналы уважения.

Например:

  • Logger1 записывает события INFO, относящиеся к одному набору системных событий
  • Logger2 записывает события INFO, связанные с другим набором системных событий
  • . Ни одна запись не должна появляться в журнале дважды

Мой log4j.properties выглядит следующим образом:

log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n

log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n

Мой код Java выглядит следующим образом:

public static void main(String[] args) {
    PropertyConfigurator.configure(Client.class
           .getResource("/log4j.properties"));
    xdasLogger = Logger.getLogger("xdasLogger");
    logger = Logger.getLogger(Client.class);

    logger.info("normal");
    xdasLogger.info("xdas");
}

Но вывод моей консоли выглядит следующим образом:

normal
2012-06-28 09:52:44,580 INFO  xdasLogger - xdas
xdas

Обратите внимание, что «xdas» регистрируется как logger, так и xdasLogger, что нежелательно.

Кто-нибудь знает, какие изменения мне нужно внести в мои log4j.properties, чтобы изменить вывод консоли на следующий?

normal
2012-06-28 09:52:44,580 INFO  xdasLogger - xdas

Решение (взято из принятого ответа):

log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas

log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n

log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n
44
задан Alex Averbuch 28 June 2012 в 08:17
поделиться