2011-02-16 64 views
0

我正在開發應用程序的測試版。這是一個在Glassfish上運行的Java應用程序。很明顯,我們不時收到錯誤報告。我想爲我的用戶提供一個簡單的一鍵式按鈕來從/ domains/domain1/logs獲取服務器日誌。我不確定應用程序是否可以通過這種方式獲得此日誌文件的沙盒。Glassfish中運行的應用程序可以訪問哪些域文件?

玻璃魚沙箱的應用程序是否會阻止我獲取文件?是否有可用於獲取日誌的標準方法或庫? 如果服務器上的文件權限是正確的,我可以讓我的應用程序使用絕對路徑讀取文件嗎?

回答

1

您的應用程序可以直接讀取server.log文件。請注意,日誌是旋轉的,因此您的應用程序將不得不重新加載日誌文件,甚至可能提供對旋轉日誌的訪問權限。

如果您使用的是Web服務器前端(例如Apache),則可以只提供日誌目錄。我想你可以在你的webroot中創建一個到該目錄的符號鏈接。

請注意,您沒有記錄任何敏感信息,因爲公開日誌文件可能存在安全風險。

+0

當你說直接讀取它時,這只是一個基本的文件讀取`File.open(/opt/glassfish/blah/blah/blah/server.log)`或是否有一些便利的方法,如`someGlassfishServerObject.getLogFile ()`? – Freiheit 2011-02-17 15:13:35

+0

在日誌記錄 - >常規部分中,您可以指定日誌文件名稱。默認情況下,我讀取:「$ {com.sun.aas.instanceRoot} /logs/server.log」。我猜你可以在File.open調用中使用它。 – OleTraveler 2011-02-18 21:41:04

1

如果您使用GlassFish 2.1,您應該查看AMXAMX class Logging似乎有你想要的數據。

如果您使用GlassFish 3.1,則應使用RESTful interface to the admin data。如果您已經在GlassFish 3.1的一個實例本地運行,現在,你可以點擊這個鏈接查看的日誌數據:http://localhost:4848/management/domain/view-log ...

如果您使用的是基於瀏覽器 WebKit的,如Chrome或Safari瀏覽器,你 可能需要查看的 的「空」頁面的源代碼....

如果您使用的是GlassFish 3.0,你將需要直接打開該文件。

相關問題