2011-11-04 94 views
0

我有一個使用log4j進行日誌記錄的j2ee web應用程序。我想在管理頁面上有一個日誌查看器。這應該允許用戶在應用程序UI上查看log4j日誌。有誰知道如何在java中實現,也許, - 實時滾動日誌會很好, - 否則可以說最後500行日誌手動刷新可以完成。 後者使用文件操作的問題是,我不確定每次刷新會有多長時間,因爲在log4j生成新文件之前日誌文件的大小可能爲10 MiB。在web應用程序中查看日誌跟蹤

什麼是最好的方式來做到這一點。任何指針會很好..謝謝

+0

它在Linux上運行嗎?你總是可以從'tail -f'管道輸出流。 – Bringer128

+0

是服務器是unix服務器。我可以用tail -f在unix終端上看到日誌,但是如何在瀏覽器的應用程序頁面上查看它。 – Ash

+0

從應用程序中調用本地tail -f命令,然後在頁面上顯示輸出結果是否可能(如在一個好主意中)? – Ash

回答

0

你可以做到這一點,你必須看看下面的結構。

  1. 在您的log4j.xml中爲您的申請,請確保您的appender發送到公共可訪問的文件夾。

  2. 在您的視圖應用程序中,每次刷新(頁面上的refesh按鈕),轉到服務器,讀取文件,將內容噴出到您的頁面。

  3. 更好的是,讀取請求應該在JMS實現的後面,所以它可以在後臺讀取而不會阻止前面的查看請求。 IE,如果該文件相當大,則不會阻止對servlet的請求。完成讀取後,可以搜索出現的字符串以截斷文件內容(可能是輸出日期和時間戳)。這將是密集的記憶,但它已經完成了很多次。

0

恕我直言,你不能像C一樣在低級別管理文件,這就是爲什麼你不能從文件中讀取最後一個X行,沒有你讀取整個文件。

但是Log4j可以將日誌發送到數據庫(JDBCAppender)並從數據庫中輕鬆管理日誌。

0

您可以提供一個休息api/url來訪問服務器日誌。人們很容易調試/書籤/刷新。