1.一種基于雙線程的日志輸出方法,其特征在于,包括:
接收日志調用請求,將所述日志調用請求中的日志文本數據存儲在線程循環(huán)隊列中;
將所述線程循環(huán)隊列中存儲的日志文本數據寫入阻塞隊列,所述阻塞隊列為內存緩沖區(qū);
監(jiān)聽所述阻塞隊列的容量和寫入操作,若監(jiān)聽到所述阻塞隊列沒有寫入操作或者達到容量閾值,則觸發(fā)日志的輸入輸出線程,將所述阻塞隊列中當前所有的日志文本數據一次性寫入日志文件。
2.根據權利要求1所述的方法,其特征在于,所述將所述阻塞隊列中當前所有的日志文本數據一次性寫入日志文件,包括:
打開日志文件句柄,從所述阻塞隊列中依次獲取當前所有的日志文本數據,依次寫入每一日志文本數據到所述日志文件中,當前所有的日志文本數據寫入所述日志文件結束時,關閉所述日志文件句柄。
3.根據權利要求1或2所述的方法,其特征在于,所述接收日志調用請求之前,還包括:
設置所述線程循環(huán)隊列的線程優(yōu)先級低于業(yè)務處理的優(yōu)先級。
4.根據權利要求1或2所述的方法,其特征在于,所述監(jiān)聽到所述阻塞隊列沒有寫入操作,包括:
監(jiān)聽到所述阻塞隊列在預設時間內沒有寫入操作。
5.一種基于雙線程的日志輸出裝置,其特征在于,包括:
接收模塊,用于接收日志調用請求;
線程循環(huán)隊列,用于存儲所述日志調用請求中的日志文本數據;
阻塞隊列,用于存儲所述線程循環(huán)隊列中的日志文本數據,所述阻塞隊列為內存緩沖區(qū);
觸發(fā)模塊,用于監(jiān)聽所述阻塞隊列的容量和寫入操作,若監(jiān)聽到所述阻塞隊列沒有寫入操作或者達到容量閾值,則觸發(fā)日志的輸入輸出線程;
日志寫入模塊,用于將所述阻塞隊列中當前所有的日志文本數據一次性寫入日志文件。
6.根據權利要求5所述的裝置,其特征在于,所述日志寫入模塊具體用于:
打開日志文件句柄,從所述阻塞隊列中依次獲取當前所有的日志文本數據,依次寫入每一日志文本數據到所述日志文件中,當前所有的日志文本數據寫入所述日志文件結束時,關閉所述日志文件句柄。
7.根據權利要求5或6所述的裝置,其特征在于,還包括:
設置模塊,用于在所述接收模塊接收日志調用請求之前,設置所述線程循環(huán)隊列的線程優(yōu)先級低于業(yè)務處理的優(yōu)先級。
8.根據權利要求5或6所述的裝置,其特征在于,所述觸發(fā)模塊具體用于:
監(jiān)聽到所述阻塞隊列在預設時間內沒有寫入操作。