在WebSphere中使用的Log4j从春天记录(Logging from Spring using

2019-09-29 14:42发布

我用我的WebSphere应用程序的log4j。 我需要调试类org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor ,所以我在我的log4j.xml文件中创建记录:

<logger name="org.springframework">
    <level value="INFO" />
</logger>

<logger name="org.springframework.ejb.access">
    <level value="TRACE" />
</logger>

我创建也commons-logging.properties在Web项目的src / main /资源(在Maven中):

org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger

然而,春天没有使用log4j的日志记录。 我看不出有什么springframework的日志在我的调试文件,但我可以在控制台中看到一些他们(INFO)的。 因此,我认为,Spring中使用了Apache通用日志使用log4j的不记录。

是否有可能(以及如何)重定向的WebSphere下使用由春季的Log4j引擎记录?

的WebSphere 7.0,弹簧3.1.2,1.2.6 log4j的,共享记录在共享库提供1.1。

Answer 1:

尝试以下方法:

  1. 考虑使用SLF4J为您记录。 添加log4j的到你的依赖在行家。
  2. JCL-过SLF4J添加到您的Maven依赖。 此redirectes从JCL每个请求SLF4J。
  3. 搜索您的Maven依赖内部的依赖共享记录。 排除它,所以它不会让你的部署档案库。
  4. 删除 “commons-logging.properties” -file。

我希望所有的事情现在工作了罚款。



Answer 2:

这种技术路由JCL(包括Spring)记录到你的log4j的配置仍然有效。

对于应用程序,我们也有SLF4J已经(访问Spring WebFlow的), 这也可以被发送到你的log4j的配置 。

不过,如果你只是想看看春节日志信息,你可以增加对WebSphere的自己通过控制台的日志(SystemOut.log中)日志记录的级别Troubleshooting > Logs and Trace >服务器名称> Change log level details

添加类似: org.springframework.ejb.access.*=fine (冒号分隔)。

我不知道确切的WAS级别对应,但finefiner ,并且finest是在“跟踪”级别列出如果展开组件和组区域只是为了看看什么是可用的。

(我不认为它很重要,你的特定春包下没有列在那里,顺便说一句,我相信应该还是成功地控制你的日志。)



文章来源: Logging from Spring using Log4j under WebSphere