国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++項目實戰(zhàn)——基于多設(shè)計模式下的同步&異步日志系統(tǒng)-④-日志系統(tǒng)框架設(shè)計

這篇具有很好參考價值的文章主要介紹了C++項目實戰(zhàn)——基于多設(shè)計模式下的同步&異步日志系統(tǒng)-④-日志系統(tǒng)框架設(shè)計。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

專欄導讀

??作者簡介:花想云 ,在讀本科生一枚,C/C++領(lǐng)域新星創(chuàng)作者,新星計劃導師,阿里云專家博主,CSDN內(nèi)容合伙人…致力于 C/C++、Linux 學習。

??專欄簡介:本文收錄于 C++項目——基于多設(shè)計模式下的同步與異步日志系統(tǒng)

??相關(guān)專欄推薦:C語言初階系列、C語言進階系列 、C++系列、數(shù)據(jù)結(jié)構(gòu)與算法、Linux

C++項目實戰(zhàn)——基于多設(shè)計模式下的同步&異步日志系統(tǒng)-④-日志系統(tǒng)框架設(shè)計,C++項目——基于多設(shè)計模式下的同步&異步日志系統(tǒng),c++,設(shè)計模式,日志系統(tǒng),c++項目實戰(zhàn)
本項目實現(xiàn)的是一個多日志器日志系統(tǒng),主要實現(xiàn)的功能是讓程序員能夠輕松的將程序運行日志信息落地到指定位置,且支持同步與異步兩種方式的日志落地方式。

項目的框架設(shè)計將項目分為以下幾個模塊來實現(xiàn)。

(具體模塊在代碼實現(xiàn)中詳細講解)

模塊劃分

日志等級模塊

  • 對輸出日志的等級進行劃分,以便于控制日志的輸出,并提供等級枚舉轉(zhuǎn)字符串的功能。

日志消息分為以下等級:

  • OFF:關(guān)閉;
  • DEBUG:調(diào)式,調(diào)試時的關(guān)鍵信息輸出;
  • INFO:提示,普通的提示性日志信息;
  • WARN:警告,不影響運行,但是需要注意的日志;
  • ERROR:錯誤,程序運行時出現(xiàn)錯誤的日志;
  • FATAL:致命,一般是代碼導致程序無法正常運行的日志。

日志消息模塊

  • 中間存儲日志輸出所需的各項要素信息
    • 時間:描述本條日志輸出的時間;
    • 線程ID:描述本條日志是哪一個線程輸出的;
    • 日志等級:描述本條日志的等級;
    • 日志文件名:描述本條日志在哪一個源碼文件中輸出的;
    • 日志行號:描述本條日志在源碼文件的哪一行輸出的;
    • 日志數(shù)據(jù):本條日志的有效數(shù)據(jù)載荷。

日志消息格式化模塊

  • 設(shè)置日志輸出格式,并提供對日志消息格式化的功能。

  • 系統(tǒng)的默認日志輸出格式[%d{%H:%M:%S}][%t][%c][%f:%l][%p]%T%m%n

    • %d 表示日期,包含子格式 {%H:%M:%S};
    • %t 表示線程ID;
    • %c 表示日志器名稱;
    • %f 表示源碼文件名;
    • %l 表示源碼行號;
    • %p 表示日志級別;
    • %m 表示主體消息;
    • %n 表示換行;
  • 設(shè)計思想:設(shè)計不同的子類,不同的子類從日志消息中取出不同的數(shù)據(jù)進行處理。

日志消息落地模塊

  • 決定了日志消息的落地方向(即輸出位置),可以是標準輸出。也可以是日志文件,也可以是滾動文件進行輸出。
    • 標準輸出:表示將日志信息進行標準輸出打??;
    • 日志文件輸出:表示將日志寫入指定文件末尾;
    • 滾動文件輸出:當前以文件大小進行控制,當一個日志文件大小達到指定大小,則切換下一個文件進行輸出;
  • 后期,也可以拓展遠程日志輸出,創(chuàng)建客戶端將日志消息發(fā)送到遠程的的日志分析服務器;
  • 設(shè)計思想:設(shè)計不同的子類,不同的子類控制不同的日志落地方向。

日志器模塊

  • 此模塊是對以上幾個模塊的整合,用戶通過日志器進行日志的輸出,有效降低用戶的使用難度。
  • 此模塊包含有:日志消息落地模塊對象,日志消息格式化模塊對象,日志輸出等級。

日志器管理模塊

  • 為了降低項目開發(fā)的耦合,不同的項目組可以有可以有自己的日志器來控制輸出格式以及落地方向,因此本項目是一個多日志器的日志系統(tǒng)。
  • 管理模塊就是對創(chuàng)建的所有日志器進行統(tǒng)一的管理。并提供一個默認日志器提供標準輸出的日志輸出。

異步線程模塊

  • 實現(xiàn)對日志的異步輸出功能,用戶只需要將輸出的日志任務放入任務池,異步線程負責日志的落地輸出功能,以此提供更加高效的非阻塞日志輸出。

模塊關(guān)系圖

C++項目實戰(zhàn)——基于多設(shè)計模式下的同步&異步日志系統(tǒng)-④-日志系統(tǒng)框架設(shè)計,C++項目——基于多設(shè)計模式下的同步&異步日志系統(tǒng),c++,設(shè)計模式,日志系統(tǒng),c++項目實戰(zhàn)
C++項目實戰(zhàn)——基于多設(shè)計模式下的同步&異步日志系統(tǒng)-④-日志系統(tǒng)框架設(shè)計,C++項目——基于多設(shè)計模式下的同步&異步日志系統(tǒng),c++,設(shè)計模式,日志系統(tǒng),c++項目實戰(zhàn)文章來源地址http://www.zghlxwxcb.cn/news/detail-709031.html

到了這里,關(guān)于C++項目實戰(zhàn)——基于多設(shè)計模式下的同步&異步日志系統(tǒng)-④-日志系統(tǒng)框架設(shè)計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包