2012-12-11 96 views
7

我有一個Java EE 5 Web應用程序,我將其作爲EAR文件部署到WebSphere 7。如何在WebSphere 7中設置log4j.configuration系統變量?

我想讓我的log4j配置在EAR文件的外部,這樣我就可以在需要時調整日誌內容,而無需重建和重新部署EAR文件。

我的理解是我可以通過設置名爲log4j.configuration的 「系統變量」來指定我的log4j.properties文件的位置。 (例如log4j.configuration = c:/log4j.properties)

我的問題是,如何在WebSphere 7管理控制檯中設置此係統變量?

瀏覽我看到有Environment > WebSphere Variables,但這看起來不正確,因爲這將爲整個服務器設置一個變量。我猜想我想爲我的應用程序EAR文件設置一個系統變量。

任何幫助或建議非常感謝!

羅布

回答

9

log4j.configuration屬性是一個Java虛擬機的系統屬性。您可以通過將其添加到應用程序服務器的通用JVM參數列表的末尾來加載此屬性。這是在WebSphere控制檯通過以下導航完成:

Servers > Application servers > [app server name] > Process definition > Java Virtual Machine

在通用JVM參數,添加以下內容:

-Dlog4j.configuration=file:C:/log4j.properties

點擊Apply在這個頁面的底部,保存您的更改。這將需要重新啓動應用程序服務器才能生效。

+1

謝謝,但這意味着服務器上的所有應用程序都有一個log4j.configuration,對嗎?我原以爲我可以爲我的特定應用程序提供一個配置文件。那可能嗎? –

+0

你是對的;這將適用於任何地方。如果您需要應用程序級別的Log4J設置,則必須在每個應用程序中打包一個'log4j.properties'文件,並刪除'log4j.configuration'系統屬性。 – Isaac

1

您也可以爲應用程序使用共享庫,並將log4j.xml放在那裏。

相關問題