Ответ 1
Попробуйте установить для аддитивности регистраторов значение false. Это позволит избежать распространения корневого сервера.
log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false
Я хотел бы иметь два разных регистратора log4j
в моем приложении и не допускать "перекрытия" между содержимым, которое они пишут в своих журналах уважения.
Например:
Мои 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
Попробуйте установить для аддитивности регистраторов значение false. Это позволит избежать распространения корневого сервера.
log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false