2015-09-11 4 views
2

В log4j это можно определить уровень журнала по package следующим образом:Как настроить уровень журнала log4j2.xml только для определенного класса?

<logger name="org.springframework.web.servlet.mvc.method.annotation" level="info"> 
     <AppenderRef ref="CONSOLE" /> 
    </logger> 

проблем качества: как я могу определить протоколирования только для определенного класса? (например, org.springframework.web.servlet.mvc.method.annotation.EndpointHandlerMapping)? Если я просто поместил это в свойство <logger name, ничего больше не регистрируется.

+1

Есть ли что-нибудь из этого класса, если вы что-нибудь забыли? –

+0

Да, если это так. – membersound

+0

Тогда я думаю, это на самом деле должно работать. Вы втрое проверили правописание? –

ответ

1

Он должен работать с полным именем. Logger.name не должен быть только пакетом/классом, но это может быть любое имя, которое вы хотите. При вызове LoggerFactory.getLogger («MyLogger»), то вы должны использовать

<Logger name="MyLogger" level="info"> 
    <AppenderRef ref="CONSOLE"/> 
</Logger> 

Проверьте, что регистрируется при использовании регистратора для пакета и использовать имя регистратора из журнала. Какое имя регистратора регистрируется для этого класса?

+0

Имя регистратора - 'o.s.w.s.m.m.a.EndpointHandlerMapping', который является способом загрузки весны в аббревиатуру имени пакета регистратора. – membersound

+0

Я хотел бы попробовать использовать <имя Logger = «o.s.w.s.m.m.a.EndpointHandlerMapping» уровень = «данные»>

+0

@membersound - Вы уверены, что это весна-Загрузочный делает сокращение? Log4J2 имеет опцию в формате ведения журнала, чтобы таким образом сокращать источник журнала, но это только выходная опция, а не изменение фактического имени регистратора. –

Смежные вопросы