我目前擁有支持日誌機制的操作系統,如syslog。然而,在調試一個過程時,也就是找出哪些事件或消息與系統中的其他進程交換了一個特定的進程是很乏味的。通過進程記錄消息交換
任何人都可以建議我做一個更好的機制嗎?
我目前擁有支持日誌機制的操作系統,如syslog。然而,在調試一個過程時,也就是找出哪些事件或消息與系統中的其他進程交換了一個特定的進程是很乏味的。通過進程記錄消息交換
任何人都可以建議我做一個更好的機制嗎?
我會推薦用某種抽象來包裝消息傳遞機制。然後,您可以將診斷程序放置在消息傳遞層中。我會想象這是某種設計模式。創建一個抽象,其中包括連接器之間的進程和消息通過連接器發送。如果您的消息抽象包含一個標識符(例如GUID),那麼您可以記錄流經連接器的消息,並輕鬆通過系統跟蹤消息。有些想法請看C2 architectural style。
我們的交換機應用程序的一部分使用20+單線程進程來處理事務,每個進程處理事務處理的一小部分,然後將請求發送到下一個進程。最後一個進程回覆,回覆消息以相反的順序發回。
我們的應用程序都將自己的跟蹤寫入自己的日誌文件,這對診斷問題並不是很有用。因此,跟蹤層還會將所有跟蹤發送到調試服務器進程,當進程發送或接收到消息時,該消息也會通過該消息的唯一標識發送到調試服務器。這使得調試服務器能夠將所有消息連接在一起,使我們能夠獲得每個事務的系統視圖。
顯然這是非常耗費資源的,因此默認情況下在繁忙的系統上關閉,但可以打開它並在運行時設置跟蹤級別以診斷現場和開發中的問題。
這些程序是否具有源代碼並且可以修改? – 2009-08-11 05:52:23
我猜目前來源不可用,並且存在文件系統內存限制,因爲我無法在磁盤上寫入大量文件 – Thunderboltz 2009-08-12 16:45:10