簡體   English   中英

在WebSphere下使用Log4j從Spring登錄

[英]Logging from Spring using Log4j under WebSphere

我在WebSphere應用程序中使用log4j。 我需要調試org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor類,因此我在log4j.xml文件中創建了logger:

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

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

我還在Web項目的src / main / resources中創建了commons-logging.properties (在Maven中):

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

但是,Spring不會使用log4j進行日志記錄。 我在調試文件中沒有看到springframework日志,但是在控制台中可以看到其中的一些(INFO)。 因此,我假設Spring使用的apache commons日志不是使用log4j進行日志記錄。

是否可以(以及如何)將Spring使用的日志記錄重定向到WebSphere下的Log4j引擎?

共享庫中提供的WebSphere 7.0,Spring 3.1.2,log4j 1.2.6,commons-logging 1.1。

請嘗試以下操作:

  1. 考慮使用slf4j進行日志記錄。 將log4j添加到您在Maven中的依賴項。
  2. 將jcl-over-slf4j添加到您的Maven依賴項中。 這會將每個請求從jcl重定向到slf4j。
  3. 在您的Maven依賴項中搜索依賴項Commons-Logging。 排除它,因此它不會到達您的部署檔案。
  4. 刪除“ commons-logging.properties”文件。

我希望現在一切正常。

這種將JCL(包括Spring)日志記錄路由到log4j配置的技術仍然有效。

對於已經擁有slf4j的應用程序(Spring WebFlow的應用程序), 也可以將其路由到您的log4j配置

但是,如果您只想查看Spring日志信息,則可以通過控制台的“ Troubleshooting >“ Logs and Trace >“服務器名稱”>“ Change log level details信息”,將其日志記錄級別提高到WebSphere自己的日志(SystemOut.log)。

添加類似以下內容: org.springframework.ejb.access.*=fine (冒號是分隔符)。

我不知道確切的WAS級別對應於什么,但是如果您擴展“組件和組”區域以查看可用的級別,則“跟蹤”級別下會列出finefinerfinest

(順便說一句,您的特定Spring軟件包未在此處列出,這並不重要。我相信它仍然可以成功控制您的日志記錄。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM