精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺談日志系統在軟件程序中的重要性

開發 開發工具
日志系統在軟件程序中占有非常重要的地位,日志文件是排查程序問題的主要工具,是程序調試的利器。日志編寫的總體原則是簡單清晰、便于排查問題。作為一名合格的軟件開發工程師,一定要學會日志函數的靈活調用及準確通過日志文件來定位程序問題。

如果世界上有一個人能夠保證一次寫出來的代碼是百分之百正確的,那么毫無疑問,他一定是世界上最優秀的程序員,沒有之一。為什么要求代碼寫好過后要進行充分的自測 ( 包括單元測試和集成測試 ) ?就因為是人皆會犯錯,使程序就會有 bug 。作為一名軟件開發人員,必須要學會對程序進行測試,也就是要學會程序的調試。

[[193830]]

代碼調試方法

一般而言,對代碼的調試有以下幾種方法:

第一,憑肉眼看 。在開發階段,我們編寫的每一行代碼都需要用我們的“火眼金睛”多審查幾遍。如果要問,最好的代碼調試工具是什么?我認為是人眼。不管是代碼還是文檔,在用工具檢查之前,都需要先過了我們眼睛這一關。

第二,對代碼進行編譯,以發現語法錯誤 。編譯器能夠幫助我們發現代碼中存在的語法錯誤,但對于那些隱蔽性的錯誤 ( 如邏輯錯誤等 ) 無能為力。

第三,用代碼檢查工具 ( 如 Pclint 等 ) 來走查代碼 。如果代碼編譯通過,并不表示它就沒有問題了。在學校的時候,我們一般認為只要程序能夠運行就可以了。但在實際的軟件開發項目中,程序能夠跑起來,只是“萬里長征走完了第一步”。用代碼檢查工具可以發現很多編譯器無法發現的錯誤,如變量定義了未引用、不同數據類型之間相互賦值、函數未聲明便被調用等。

第四,對代碼進行調試 。對于運行正常而輸出結果不正確的程序,我們可以用設置斷點并進行單步跟蹤調試的方法來發現其中存在的問題。例如,在 VC++ 6.0 里面,可實現對代碼的單步調試,并輸出變量在某一步產生的值,可據此判斷程序的邏輯的正確與否。

第五,對程序的日志文件進行分析 。對代碼的單步調試只在代碼行數較少的時候比較適用,如學校教材上面的程序。但在實際的軟件項目中,代碼少則幾千行,多則數萬行,用單步調試的方法顯然不恰當。為了跟蹤某一變量值的變化,用該方法可能要花費幾個小時,這對工作效率產生了嚴重影響。為了解決大程序文件代碼調試問題,日志系統應運而生。在程序中的重要地方打印日志,之后對產生的日志進行分析,可找到對應代碼的問題。因此,日志文件分析成了大型軟件項目中代碼調試的主要手段。

什么是日志文件?

看過電視劇《神探狄仁杰》的朋友可能都會對狄仁杰的斷案能力極為嘆服,他會將一個外人看來非常詭異的案件查得水落石出,連武則天都不得不說他是“神乎其技”。實際上,狄仁杰也是凡人,他只是通過極為細小的線索來順藤摸瓜發現幕后的黑手。對應到軟件開發上,很多厲害的程序員都是通過分析程序運行過程中產生的少量的異常日志來發現軟件問題的。因此,程序日志就像斷案線索一樣重要。

在業務軟件系統中大量使用日志,日志能夠起到“按圖索驥”的作用,它對于故障定位和系統正常運行維護具有舉足輕重的作用。

日志文件是程序中寫日志函數產生的記錄程序執行情況的文件。寫日志函數可以用多種編程語言編寫,可以像普通的函數一樣被調用。在恰當的地方調用該函數,可對整個程序的運行狀況有一個全面的了解,方便對程序的跟蹤調試。

日志等級

事有輕重緩急,日志信息也有重要與不重要之分。一般按照重要程度,將日志等級分為幾類。在作者參與過的軟件開發項目中,共有 7 個等級,用宏定義表示如下:

  • // 日志等級定義
  • #define LOG_FATAL (int)1 // 嚴重錯誤
  • #define LOG_ERROR (int)2 // 一般錯誤
  • #define LOG_WARN (int)3 // 警告信息
  • #define LOG_INFO (int)4 // 一般信息
  • #define LOG_TRACE (int)5 // 跟蹤信息
  • #define LOG_DEBUG (int)6 // 調試信息
  • #define LOG_ALL (int)7 // 全部

開發人員根據所要打印的日志的具體情況采用不同的日志等級。

日志配置

由于不同產品程序行數、部署情況、實現功能等的差別,對日志打印的要求也不盡相同,因此需要有配置來控制日志的產生數量和顯示情況。

例如,在筆者所參與的開發項目的配置文件中,有一個專門的 [LOG] 配置段,其中的配置項如下:

  • [ LOG ]
  • ; 日志等級 , 0-Fatal 1-Error 2-Warn 3-Info 4-Trace 5-Debug 6-All
  • LogLevel =
  • ; 每個日志文件的最大容量
  • LogMaxSize =
  • ; 是否輸出該條日志在代碼中的行數 , 1-Yes 0-No
  • LogPosition =

其中, LogLevel 用于控制打印日志的等級,代碼中日志等級比配置值大的日志信息均不在日志文件中顯示; LogMaxSize 用于控制生成一個日志文件的大小的上限,超過該值后,便重新生成文件; LogPosition 用于控制是否在日志文件中顯示代碼行數,方便將日志與代碼對應起來。

日志函數的調用

日志函數的調用遵循一般函數的調用規則。例如,在筆者所參與的開發項目中,有兩類寫日志函數,如下所示:

(1) 第一類形如: WriteLog(LogLevel, LogInfo) 。其中,參數 LogLevel 指日志等級 ( 見第 2 節中的說明 ) ;參數 LogInfo 是具體要打印的日志信息,我們據此信息來檢查程序的運行情況。該函數的調用示例如: WriteLog(LOG_INFO, "The value of this integer is 3.") ,日志等級為 LOG_INFO ,日志信息為“ The value of this integer is 3. ” ( 該信息會輸出到日志文件中 ) 。

(2) 第二類形如: WriteLogEx(LogLevel, LogInfo, ParaInfo) 。這是擴展的日志函數,不但能夠輸出日志信息,還能夠在日志信息中顯示變量的值。該函數的調用示例如: WriteLogEx(LOG_INFO, "The value of integer iInt is %d.", iInt) ,該日志要輸出整型變量 iInt 的值,可以將該函數的調用與 printf 函數的調用比較起來看 ( 可以認為 WriteLogEx 函數只是在 printf 函數中增加了一個日志等級參數 ) 。

日志編寫基本原則

1) 顯式輸出,關鍵信息必須輸出;

2) 在編碼時使用正確的日志級別, error 錯誤和 warning 錯誤必須反應出實在的含義,不是特別嚴重的問題不能將日志等級定義為 LOG_FATAL ;

3) 在寫日志描述時,要使用正常簡單易懂的語言,不能使用晦澀難懂的語言或某些專業術語;

4) 在極少數特殊情況不希望用戶知道時,可使用特殊日志標記;

5) 為了寫出優美的代碼,在自己修改或添加代碼的地方,都要正確的打上標記 ( 包括作者、日期信息等 ) ,方便追蹤版本的演進情況。

日志編寫基本要求

1) 分多條信息分別輸出,不要企圖一次將所有信息打印出來;

2) 分時輸出;

3) 必須分日志級別,這樣可根據等級迅速對日志進行分析;

4) 控制日志信息的條數,不重要的信息盡量不要打印日志。

輸出日志位置要求

1) 所有的輸入輸出,包括收消息和發消息都要求輸出日志;

2) 關鍵控制點必須輸出日志;

3) 調用底層或第三方軟件,必須輸出日志,而且對不可靠底層,必須加上 begin/end 兩行日志;

4) 對方系統處理時間必須輸出日志,以利以后維護時快速定位性能問題。

一些注意事項

1) 在編寫日志時需要注重日志細節,目標是為了方便以后維護,在遇到問題時,可以快速定位問題;

2) 不要在同一行中寫意思重復的日志;

3) 日志需要足夠的精簡,不要隨意換行;

4) 日志中字段之間可以用空格或其它符號分斷,不能將日志一直連續而不將其分斷,盡量使日志本身具備進行“識文斷句”的能力;

5) 對于日志中的特殊信息 (如會話號、 IP 地址等) ,用特殊的符號進行標識,其主要目的是為了便于搜索。

總結

日志系統在軟件程序中占有非常重要的地位,日志文件是排查程序問題的主要工具,是程序調試的利器。日志編寫的總體原則是簡單清晰、便于排查問題。作為一名合格的軟件開發工程師,一定要學會日志函數的靈活調用及準確通過日志文件來定位程序問題。

“實踐出真知”,只有通過不斷的積累和總結,才會對日志有更全面的認識。

【本文是51CTO專欄作者周兆熊的原創文章,作者微信公眾號:周氏邏輯(logiczhou)】

 

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2011-07-05 18:30:44

站內優化

2021-12-20 11:02:13

勒索軟件攻擊網絡安全

2020-08-26 10:42:15

IIoT智能工廠工業物聯網

2019-08-26 15:06:13

域名系統DNS

2015-06-02 13:10:55

2009-12-25 15:00:48

WPF軟件

2014-04-23 11:36:29

運維日志

2009-03-24 09:05:54

資源管理IT管理廣通信達

2020-09-22 16:26:46

云計算

2021-12-08 14:02:46

小數據機器學習人工智能

2023-02-10 10:58:41

智慧城市數據隱私

2009-08-05 15:26:23

需求分析

2022-08-26 15:54:34

云原生Kubernetes物聯網

2023-05-24 16:08:45

深度學習工業4.0

2023-09-04 09:00:00

機器學習算法

2023-04-13 15:46:16

PoE供電PoE設備

2016-12-19 13:18:19

思科

2024-03-04 16:20:24

2023-12-20 14:10:53

2011-08-04 09:50:46

點贊
收藏

51CTO技術棧公眾號

粉嫩欧美一区二区三区高清影视| 伊人久久大香线蕉综合网站| 亚洲一区在线视频| 国产伦精品一区二区三区免| 色婷婷av国产精品| 视频一区欧美| 欧美日本一区二区在线观看| 久久这里只有精品18| 久久米奇亚洲| 国产一区二区三区美女| 国外成人在线播放| 三区四区在线观看| 99ri日韩精品视频| 欧美亚洲国产一区在线观看网站| 国产一二三四五| 神马久久高清| 国产精品456| 国产福利精品av综合导导航| 国产十六处破外女视频| 伊人久久大香线蕉无限次| 欧美一卡二卡在线观看| av免费网站观看| 人人超在线公开视频| 久久影院午夜论| 99高清视频有精品视频| 在线视频精品免费| 日韩午夜一区| 欧美成人在线网站| 少妇精品无码一区二区免费视频| 91大神精品| 欧美人牲a欧美精品| 国产一区二区网| 污的网站在线观看| 国产精品乱人伦中文| 久久综合色一本| 老熟妇高潮一区二区高清视频| 蜜臀99久久精品久久久久久软件| 77777少妇光屁股久久一区| 欧美另类videoxo高潮| 欧美男gay| 日韩av在线免费| 久久精品无码专区| 欧洲精品99毛片免费高清观看| 在线观看视频一区二区| 国产二区视频在线播放| 欧美24videosex性欧美| 亚洲欧洲国产日本综合| 午夜精品一区二区三区在线观看| 香港一级纯黄大片| 成人免费视频app| 91一区二区三区| 99久久精品日本一区二区免费| 青青青伊人色综合久久| 日韩av日韩在线观看| 国产成人免费观看视频 | 亚洲一区二区三区视频| 伊人网综合在线| 日韩福利视频网| 日韩av免费网站| 一二三区免费视频| 久久综合亚州| 国产成人激情视频| aaa人片在线| 欧美综合二区| 国产精品wwww| 在线免费看毛片| 激情综合网天天干| 亚洲一区二区三区毛片| 成人久久久精品国产乱码一区二区| 国产麻豆精品在线| 国产精品白丝jk白祙| 视频污在线观看| 国产亚洲一区二区三区在线观看| 日韩欧美电影一区二区| 午夜激情视频在线| 亚洲精品视频在线观看网站| 97超碰国产精品| 在线免费日韩片| 欧美色手机在线观看| 亚洲综合20p| 99re6热只有精品免费观看| 亚洲级视频在线观看免费1级| 特大黑人巨人吊xxxx| 精品视频亚洲| 免费av在线一区| 国产成人自拍视频在线| 奇米精品一区二区三区在线观看一| 国产精品亚洲自拍| 亚洲第一天堂影院| 久久久久国产精品麻豆| 尤物国产精品| free性欧美| 色999日韩国产欧美一区二区| 日本人69视频| 伦理一区二区| 色妞一区二区三区| 日韩av黄色片| 青青草国产成人99久久| 成人综合电影| а天堂8中文最新版在线官网| 亚洲欧美一区二区三区久本道91| 激情伊人五月天| 欧美一级网址| 亚洲美女自拍视频| 欧美日韩偷拍视频| 三级久久三级久久久| 18成人免费观看网站下载| 美丽的姑娘在线观看免费动漫| 最新不卡av在线| 欧美精品一区免费| 欧美午夜网站| 在线性视频日韩欧美| 亚洲精品77777| 国产一本一道久久香蕉| 日韩精品久久久| 99thz桃花论族在线播放| 欧美巨大另类极品videosbest | 国产欧美一区二| 日韩激情毛片| 欧美日韩国产成人在线| 影音先锋国产在线| 91在线国产观看| 免费cad大片在线观看| 主播大秀视频在线观看一区二区| 亚洲国产美女精品久久久久∴| 亚洲色图综合区| 奇米在线7777在线精品| 免费一区二区三区| 成年男女免费视频网站不卡| 日韩欧美在线123| 国产精品久久国产精麻豆96堂| 亚洲欧美清纯在线制服| 国产精品一区二区av| 青春草在线免费视频| 制服丝袜国产精品| jizz18女人高潮| 日日嗨av一区二区三区四区| 久久99久久精品国产| 国产乱码在线| 欧美不卡视频一区| 曰本女人与公拘交酡| 国产一区二区导航在线播放| 亚洲综合激情五月| 成人在线视频免费看| 亚洲午夜久久久影院| 欧美a视频在线观看| 91一区二区在线| 国产午夜福利视频在线观看| 丁香五月缴情综合网| 欧美劲爆第一页| 午夜精品在线播放| 亚洲一区在线播放| 四虎永久免费观看| 亚洲天堂偷拍| 韩日午夜在线资源一区二区| 国产美女高潮在线观看| 亚洲第一页自拍| 日本免费观看视| 91免费视频网址| 成人毛片视频网站| 免费看成人哺乳视频网站| 日韩免费在线免费观看| 国产美女性感在线观看懂色av| 色呦呦国产精品| 国产精品国产三级国产专业不| 日本不卡免费在线视频| 亚洲在线不卡| 精品一区二区三区免费看| 欧美成人精品xxx| 亚洲精华国产精华精华液网站| 亚洲一区在线观看网站| 国产精品久久AV无码| 久久久久国产精品一区三寸| 日本不卡在线播放| 91丨精品丨国产| 欧美激情2020午夜免费观看| 成人免费观看在线视频| 一本大道久久a久久综合婷婷| 干b视频在线观看| 国内精品久久久久影院一蜜桃| 大陆极品少妇内射aaaaaa| 九九热hot精品视频在线播放| 热久久视久久精品18亚洲精品| 成年人在线观看视频| 91精品国产综合久久精品麻豆| 久久久久久久久久久97| 久久久久久久久伊人| 日本人69视频| 日韩午夜在线| 亚洲欧洲久久| 成人h动漫免费观看网站| 欧美孕妇性xx| 国产一二区在线| 日韩电影在线观看中文字幕| 依依成人在线视频| 亚洲成av人影院| 999精品久久久| 99re热视频这里只精品| 日本中文字幕观看| 国产精品婷婷| 少妇高潮大叫好爽喷水| 亚洲最好看的视频| 91成人免费在线观看| 欧美在线va视频| 久久久久久久久国产| 91高清在线| 亚洲激情在线观看视频免费| 国产麻豆精品一区| 日韩欧美精品在线观看| 九九热国产精品视频| 欧美韩日一区二区三区四区| 少妇精品无码一区二区| 蓝色福利精品导航| 亚洲欧洲日产国码无码久久99 | 久久久久99精品一区| 下面一进一出好爽视频| 久久国产88| 五月丁香综合缴情六月小说| 久久久久久久久99精品大| 日韩欧美视频一区二区三区四区| 伦理一区二区| 鬼打鬼之黄金道士1992林正英| 欧美日韩伦理一区二区| 国产精品爱啪在线线免费观看 | 精品国产老师黑色丝袜高跟鞋| 老熟妇高潮一区二区三区| 国产日韩高清在线| 美国黄色a级片| 菠萝蜜视频在线观看一区| 中文字幕人妻熟女人妻a片| 蜜桃视频在线观看一区| 日本成人中文字幕在线| 亚洲欧美日韩专区| 3d动漫一区二区三区| 国产一区日韩欧美| 五月天激情图片| 欧美在线影院| 一级特黄妇女高潮| 伊人久久大香线| 黄色一级视频播放| 亚洲视频在线免费| 免费观看中文字幕| 亚洲第一偷拍| 日韩精品第1页| 欧美在线网站| 97久久国产亚洲精品超碰热| 欧美在线亚洲| 91大学生片黄在线观看| 欧美永久精品| 800av在线免费观看| 欧美日韩精品免费观看视频完整| 久久国产精品免费观看| 欧美三级网页| www.xxx麻豆| 一本色道久久| 国产xxxxx在线观看| 日韩在线一二三区| 亚州精品一二三区| 久久国产人妖系列| 天堂av2020| 国产不卡在线一区| 中文文字幕文字幕高清| 久久久久综合网| 亚洲精品国产精品国自| ...中文天堂在线一区| 91日韩中文字幕| 亚洲图片有声小说| 亚洲GV成人无码久久精品| 在线观看视频一区二区| 91午夜交换视频| 日韩欧美在线网站| 天天干免费视频| 一区二区三区四区在线观看视频| 三级外国片在线观看视频| 久久夜色精品国产欧美乱| 国产啊啊啊视频在线观看| 欧美在线免费看| 欧美成人一二区| 成人午夜电影免费在线观看| 日韩欧美黄色| 亚洲一区二区三区免费看| 午夜欧美视频| 999香蕉视频| 国产原创一区二区| 久久国产精品无码一级毛片| 国产欧美一区二区三区网站 | 亚洲自拍另类欧美丝袜| 国产一区二区三区不卡av| 日韩电影免费观看在| 欧美一区高清| 天天操天天爽天天射| 国产99久久精品| 天天躁日日躁aaaa视频| 一区二区在线观看免费视频播放| 亚洲最大综合网| 精品一区二区在线看| 稀缺小u女呦精品呦| 日本一区二区动态图| 日本少妇高清视频| 欧美小视频在线观看| 国产女同91疯狂高潮互磨| 精品偷拍各种wc美女嘘嘘| 麻豆传媒视频在线观看免费| 57pao国产精品一区| 国产亚洲亚洲国产一二区| 蜜桃狠狠色伊人亚洲综合网站| 91精品推荐| av在线无限看| 99国产精品国产精品久久| 国产suv精品一区二区68| 日本韩国欧美国产| 欧洲精品久久一区二区| 日韩视频免费看| 免费成人直播| 国产精品日韩欧美一区二区三区| 久久激情电影| 男人日女人bb视频| 国产v日产∨综合v精品视频| 人与动物性xxxx| 欧美在线视频日韩| 黄色小视频免费在线观看| xxxxx成人.com| 国产私拍福利精品视频二区| 精品视频在线观看| 韩国亚洲精品| 波多野结衣电影免费观看| 中文字幕视频一区| 中文字幕人妻一区二区三区视频| 国产丝袜高跟一区| 久草在线中文最新视频| 俄罗斯精品一区二区三区| 一区二区不卡| 国产高清av片| 亚洲欧洲在线观看av| 一级aaaa毛片| 中文字幕日韩精品有码视频| 99久久伊人| 亚洲欧美国产精品桃花| 蜜乳av一区二区| 手机av在线不卡| 欧美日韩国产一级片| 成人高清免费观看mv| 国产福利精品在线| 国产一区99| 国产一二三四在线视频| 国产人成亚洲第一网站在线播放 | 男人的天堂亚洲| 成人性生活免费看| 亚洲一区二区三区四区五区黄| 亚洲成人精品女人久久久| 欧美美女15p| 99久久婷婷国产综合精品青牛牛| 日韩成人手机在线| 成人爱爱电影网址| 日韩成人免费在线视频| 日韩av中文字幕在线| 另类专区亚洲| 亚洲 国产 欧美一区| 久久99精品国产麻豆婷婷| 成人涩涩小片视频日本| 日韩你懂的在线播放| a√中文在线观看| 青青草原成人| 久久国产欧美日韩精品| 黑人巨大精品一区二区在线| 日韩欧美成人午夜| 国产高清中文字幕在线| 欧美不卡三区| 美女一区二区视频| 91在线播放观看| 亚洲精品videossex少妇| 在线人成日本视频| 亚洲一区二区在| 丁香啪啪综合成人亚洲小说 | 丁香影院在线| 蜜桃av色综合| 老司机免费视频一区二区三区| 老熟妻内射精品一区| 精品剧情v国产在线观看在线| 免费h在线看| 伊人天天久久大香线蕉av色| 成人精品电影在线观看| 91久久国产综合久久91| 精品国内亚洲在观看18黄| 中文字幕一区二区三区四区久久 | 青青操视频在线播放| 日韩精品在线观看一区二区| 久久久久黄色| 亚洲熟妇无码一区二区三区| 国产欧美日韩综合精品一区二区| 国产99久一区二区三区a片| 国产91精品久久久久久久| 天天综合网网欲色| 免费a级黄色片| 欧美精品vⅰdeose4hd| 一个人www视频在线免费观看| 中文字幕一区二区三区在线乱码 | 日韩欧美不卡在线观看视频| 另类专区亚洲| 91午夜在线观看|