日誌系統(二)改進與應用

2021-06-05 21:56:52 字數 797 閱讀 7125

上次簡單地把日誌系統從windows上移植到linux中,並修復其中bug,使其功能基本可行。

現在我又做了乙個小小的socket應用程式,將日誌系統嵌入進去,基本上能使用,但仍然存在不足,經過一系列修復後,自我感覺算是能小用一把了。

日誌系統的改進:

1. 用鎖機制實現了多執行緒對日誌介面的非同步呼叫。

2. 增加根據日誌等級輸出列印資訊的功能,外部應用程式能控制日誌列印的等級。

3. 增加定時器功能,每隔5秒鐘會自動將快取中的日誌資訊輸出到檔案中。這樣從檔案中看到的資訊就會比較全面和完整。

socket應用程式的設計:

主要是server端:

listen將請求放入等待佇列中

accept會從等待佇列中取出乙個請求,生成clientfd返回。

根據這樣的linux的兩個標準函式,我有如下思路:

1. 首先開闢乙個陣列,用於存放clientfd

2. 在主線程a裡不斷迴圈嘗試accept,將生成clientfd放入到陣列中。

3. 主線程中生成新執行緒b,用於迴圈讀取陣列的請求,然後做出相應的處理。

4. 這時需要注意執行緒a,b之間的同步與互斥訪問陣列。同步關係如下:

a執行緒發現陣列已滿,無法繼續放入clientfd,則等待。當陣列為空時,a執行緒放入乙個fd之後,則發出喚醒b執行緒的signal。

b執行緒發現陣列已空,無法繼續讀取clientfd,則等待。當陣列為滿時,b執行緒刪除乙個fd之後,則發出喚醒a執行緒的signal。

當然我的實現要比這個稍微複雜一些,畢竟考慮的東西更多,上面只是基本的說明,感覺像是在做試卷一樣,呵呵。

基於Flume的美團日誌收集系統 二 改進和優化

來自 美團技術部落格 在 基於flume的美團日誌收集系統 一 架構和設計 中,我們詳述了基於flume的美團日誌收集系統的架構設計,以及為什麼做這樣的設計。在本節中,我們將會講述在實際部署和使用過程中遇到的問題,對flume的功能改進和對系統做的優化。在flume的使用過程中,遇到的主要問題如下 ...

基於Flume的美團日誌收集系統 二 改進和優化

dju alex 2013 12 09 22 35 在 基於flume的美團日誌收集系統 一 架構和設計 中,我們詳述了基於flume的美團日誌收集系統的架構設計,以及為什麼做這樣的設計。在本節中,我們將會講述在實際部署和使用過程中遇到的問題,對flume的功能改進和對系統做的優化。在flume的使...

基於Flume的美團日誌收集系統 二 改進和優化

在 基於flume的美團日誌收集系統 一 架構和設計 中,我們詳述了基於flume的美團日誌收集系統的架構設計,以及為什麼做這樣的設計。在本節中,我們將會講述在實際部署和使用過程中遇到的問題,對flume的功能改進和對系統做的優化。在flume的使用過程中,遇到的主要問題如下 a.channel 水...