2012-06-22 227 views
0

說我有DemoServer項目,只記錄任何東西,我創建另一個項目說LogServer。所以這就是我想要做的。我將同時運行這兩個項目,因爲DemoServer正在運行,它將繼續記錄任何內容,並且在LogServer項目中,它應該能夠訪問DemoServer生成的日誌並每隔1分鐘將其保存到一個新的文本文件中。由於這是我第一次這樣做,我很難弄清楚這兩個項目將如何溝通?有人可以詳細解釋我怎麼能做到這一點?也請張貼可能幫助我解決問題的鏈接。java日誌記錄/日誌服務器

+0

準備使用的API可以幫助的,而不是創建自己的日誌服務器 – Ved

+0

不,我真的需要學習如何創建自己的日誌服務器 – stackjc

+0

你真正關心的似乎是進程間通信(可能作爲練習?)和記錄與它沒有太大關係。嘗試着重於你的問題,除非你需要10個答案提及各種現有的日誌框架。 – Groo

回答

0

我建議你深入研究oVirt源代碼(你可以克隆源代碼),看看我們用日誌採集器應用程序做什麼。
解決您的問題的方法有很多種 -
答:您的應用程序是否已登錄共享存儲器(即 - nfs share) - 它和日誌服務器都可以訪問。一個cron作業將運行一個週期性的腳本,將上次訪問的文件(比如一個小時前)複製到一個文件夾中,以便日誌服務器可以訪問。
B.使用log4j並編寫你自己的Appender,它將發送你想要的日誌服務器收集的東西到日誌服務器(通過A部分中建議的文件,或通過任何其他的意思) - 這樣你將能夠在類別水平的基礎是什麼東東的日誌服務器可以控逆變實際讀取

1

我會去與當地的插座這是相當簡單的在Java中實現,並且可以在以後使用時也demoServer的和的LogServer是在不同的機器。

發展應該是相當容易:

  • 創建自己的LogMessage
  • 創建通過使用TCP套接字一個簡單的客戶端/服務器架構,看看here
  • 使用包裹socket流ObjectInputStreamObjectOutputStream能夠使用serialization
  • 只是通過將它們封裝在從一個進程到另一個進程的消息中發送日誌,然後完成