log4j rootLogger semble hériter du niveau de journal de autre enregistreur. Pourquoi?

J'ai une configuration de log4J dans lequel la racine enregistreur est censé ERREUR du journal des messages de niveau et au-dessus de la console et un autre enregistreur de logs tout à syslog.

log4j.propriétés:

# Root logger option
log4j.rootLogger=ERROR,R

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

log4j.logger.SGSearch=DEBUG,SGSearch
log4j.appender.SGSearch=org.apache.log4j.net.SyslogAppender
log4j.appender.SGSearch.SyslogHost=localhost
log4j.appender.SGSearch.Facility=LOCAL6
log4j.appender.SGSearch.layout=org.apache.log4j.PatternLayout
log4j.appender.SGSearch.layout.ConversionPattern=[%-5p] %m%n

Dans le code je ne

private static final Logger logger = Logger.getLogger("SGSearch");
.
.
.
logger.info("Commencing snapshot index [" + args[1] + " -> " + args[2] + "]");

Ce qui se passe c'est que je la journalisation de la console pour tous les niveaux d'enregistrement. Ce qui semble se passer, c'est que le niveau de SGSearch remplace le paramètre de niveau de la racine de l'enregistreur de quelque sorte. Je ne peux pas le comprendre.

J'ai confirmé que Log4J est de lire le fichier de propriétés, je pense qu'il est, et pas d'autres (via le -Dlog4j.debug option)

InformationsquelleAutor AndrewR | 2010-03-16