log4j.logger.org.jasig.cas未被发送到应用程序日志中

时间:2018-01-19 06:23:36

标签: java logging log4j weblogic jasig

我们正在使用 cas-client-core-3.3.3.jar 在我们的应用程序中提供单点登录功能,并且我们正在尝试将此jar库日志发布到我们的应用程序日志中。

我们的应用程序是基于weblogic的应用程序,我们使用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 个答案:

答案 0 :(得分:1)

免责声明:我从未使用过Web Sphere,但在不同的日志记录系统上工作过很多,所以我的回答是基于我在这方面的经验。

首先,cas在引擎盖下使用了slf4j,非常棒。 Slf4j只是一个接口(slf4j-api jar),如果你想将它与log4j一起使用,log4j是对slf4j apis一无所知的日志系统的具体实现,你应该提供一个sfl4j接口的实现,它将调用委托给log4j记录仪。 因此,您还应该在类路径中包含此类适配器以及Here is the link

现在,如果这不起作用,那么log4j.properties可能没有正确配置,例如,记录器没有任何关联的appender /错误的appender。 我发现检查这个问题的最佳方法就是在记录器的调用(在cas库中)放置一个断点,并看到以下内容:

  • 实际使用了slf4j接口的哪个实现(因为我在org.sl4j.Logger之前说的只是一个接口,并且必须以某种方式用真实的实现对象实例化,你知道)
  • 查看相关的appender到底层实现。

关于第二项,根据您拥有的技术/框架,您可以通过JMX或某种Web管理界面获取此信息。调试是一个&#34;硬核&#34;通常的方法来解决这个问题。