Во-первых, ваша конфигурация мне не подходит. У вас есть
logger.myfile.name=com.util
logger.myfile.level = debug,info
logger.myfile.appenderRefs = file
logger.myfile.appenderRef.myfile.ref = LOGFILE
rootLogger.level =com.debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
Вы не можете указать 2 уровня на logger.myfile.level. Указание отладки будет включать все события отладки, информации, предупреждения, ошибок и фатальных событий.
Во-вторых, у вас есть rootLogger.level = com.debug. Я бы предположил, что это должно быть rootLogger.level=debug
?
Чтобы ответить на ваш вопрос, да, вы должны настроить регистратор для каждого шаблона, который вы хотите сопоставить. Однако объявление Logger может делегировать часть своей конфигурации своему родителю. Единственное, что обычно требуется, это атрибут уровня.
Таким образом, вы можете указать:
logger.a.name=com.util.marketing.sub1
logger.a.level=debug
logger.b.name=com.util.marketing.sub2
logger.b.level=error
logger.c.name=com.util.marketing
logger.c.level=info
logger.c.appenderRefs=file
logger.c.appenderRef.file=LOGFILE
Лично я предпочитаю XML, так как считаю его более кратким и понятным. Выше будет
<Logger name="com.util.marketing.sub1" level="DEBUG"/>
<Logger name="com.util.marketing.sub2" level="ERROR"/>
<Logger name="com.util.marketing" level="INFO">
<AppenderRef ref="LOGFILE"/>
</Logger>