log4j.logger.org.jasig.cas не попадает в журналы приложений

Мы используем cas-client-core-3.3.3.jar для обеспечения функциональности единого входа в нашем приложении, и мы пытаемся добавить журналы этой библиотеки jar в наши журналы приложений.

Наше приложение является приложением, основанным на веб-логике, и мы используем log4j для ведения журнала.

Поэтому для получения журналов cas-client-core-3.3.3.jar в журнале приложений мы добавили это свойство в наши log4j.properties

log4j.logger.org.jasig.cas=DEBUG

но мы не получаем журналы, ожидаемые от классов org.jasig.cas. Я прилагаю образец журнала здесь, который ожидается

2015-05-13 10:00:17,798 DEBUG [org.jasig.cas.client.validation.Saml11TicketValidator.<constructValidationUrl>] - Placing URL parameters in map. 
2015-05-13 10:00:17,801 DEBUG [org.jasig.cas.client.validation.Saml11TicketValidator.<constructValidationUrl>] - Calling template URL attribute map. 
2015-05-13 10:00:17,802 DEBUG [org.jasig.cas.client.validation.Saml11TicketValidator.<constructValidationUrl>] - Loading custom parameters from configuration. 
2015-05-13 10:00:17,803 DEBUG [org.jasig.cas.client.validation.Saml11TicketValidator.<validate>] - Constructing validation url:

1 ответ

Отказ от ответственности: я никогда не работал с Web Sphere, но много работал с различными системами ведения журналов, поэтому мой ответ основан на моем опыте в этой области.

Во-первых, cas использует slf4j под капотом, и это здорово. Slf4j - это всего лишь интерфейс (slf4j-api jar), и если вы хотите использовать его с log4j, который является конкретной реализацией системы ведения журналов, которая ничего не знает о slf4j apis, вы должны предоставить реализацию интерфейсов sfl4j, которая будет делегировать вызовы log4j лесорубы. Таким образом, вы должны также включить такой адаптер в classpath. Вот ссылка.

Теперь, если это не работает, то, вероятно, свойства log4j.properties настроены неправильно, например, у регистратора нет связанных или неправильных дополнений. Я нашел лучший способ проверить это, просто поставить точку останова на вызов регистратора (внутри библиотеки cas) и увидеть следующее:

  • Какая реализация интерфейса slf4j фактически используется (как я уже говорил org.sl4j.Logger это просто интерфейс, и его нужно как-то создавать с реальным объектом реализации, вы знаете)
  • Смотрите связанные дополнения к базовой реализации.

Что касается второго пункта, в зависимости от имеющихся у вас технологий / сред, вы можете получить эту информацию через JMX или какой-либо интерфейс веб-администратора. Отладка - это "грубый" общий способ выяснить это.

Другие вопросы по тегам