統(tǒng)一錯誤日志管理方法
【專利摘要】本發(fā)明涉及統(tǒng)一錯誤日志管理方法。本發(fā)明針對現(xiàn)有技術(shù)中在每一個可能出現(xiàn)錯誤的地方都需要去獨立的寫日志記錄會加重代碼的維護(hù)難度和增加重復(fù)的代碼邏輯的問題,提供一種統(tǒng)一錯誤日志管理,包括以下步驟:系統(tǒng)運行待檢測程序,檢測到異常時,啟動異常記錄程序?qū)Ξ惓P畔⑦M(jìn)行記錄,并將異常信息進(jìn)行統(tǒng)一存儲。使用Nlog和Exception Filter Attribute的特性實現(xiàn)了在最外層捕獲日志并記錄在數(shù)據(jù)庫中,實現(xiàn)了Log的統(tǒng)一捕獲和記錄,避免了獨立寫try catch模塊記錄日志。適用于統(tǒng)一錯誤日志管理。
【專利說明】
統(tǒng)一錯誤日志管理方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及日志管理,特別涉及統(tǒng)一錯誤日志管理。
【背景技術(shù)】
[0002]平臺維護(hù)時,由于各種突發(fā)的情況導(dǎo)致不可預(yù)料的錯誤出現(xiàn),此時需要使用日志 技術(shù)來記錄錯誤以及錯誤發(fā)生的堆棧信息?,F(xiàn)有技術(shù)中是在每一個可能出現(xiàn)錯誤的地方都 需要都去獨立的寫日志記錄會加重代碼的維護(hù)難度和增加重復(fù)的代碼邏輯。其工作代碼如 下:
[0004] 需要獨立的寫try catch模塊記錄日志。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問題,就是提供一種統(tǒng)一錯誤日志管理方法以實現(xiàn)統(tǒng)一錯 誤日志記錄,避免獨立的寫try catch模塊記錄日志。
[0006] 本發(fā)明解決所述技術(shù)問題,采用的技術(shù)方案是,統(tǒng)一錯誤日志管理,包括以下步 驟:系統(tǒng)運行待檢測程序,檢測到異常時,啟動異常記錄程序?qū)Ξ惓P畔⑦M(jìn)行記錄,并將異 常信息進(jìn)行統(tǒng)一存儲。
[0007] 具體的,系統(tǒng)通過使用Log Exception Filter實現(xiàn)父類Exception Filter Attribute的On Exception方法來檢測異常。
[0008] 進(jìn)一步的,系統(tǒng)在On Exception方法中使用Nlog日志記錄工具對異常信息進(jìn)行記 錄。
[0009] 具體的,異常信息統(tǒng)一存儲于錯誤日志數(shù)據(jù)庫和/或文件格式存儲,所述文件格式 至少包括文本、Json及xml格式。
[0010] 進(jìn)一步的,系統(tǒng)采用直接交互數(shù)據(jù)庫的方式實現(xiàn)對異常信息進(jìn)行記錄,并將其上 傳至錯誤日志數(shù)據(jù)庫中。
[0011] 具體的,所述異常信息至少包括日志ID、日志發(fā)生時間、日志級別、日志信息文本、 堆棧信息、日志來源及錯誤信息。
[0012] 本發(fā)明的有益效果是:使用Nlog和Exception Filter Attribute的特性實現(xiàn)了在 最外層捕獲日志并記錄在數(shù)據(jù)庫中,實現(xiàn)了Log的統(tǒng)一捕獲和記錄,避免了獨立寫try catch模塊記錄日志。
[0013] 以下結(jié)合實施例的【具體實施方式】,對本發(fā)明的上述內(nèi)容再作進(jìn)一步的詳細(xì)說明。 但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實例。在不脫離本發(fā)明上述技術(shù)思 想情況下,根據(jù)本領(lǐng)域普通技術(shù)知識和慣用手段做出的各種替換或變更,均應(yīng)包括在本發(fā) 明的范圍內(nèi)。
【具體實施方式】
[0014] 下面結(jié)合實施例詳細(xì)描述本發(fā)明的技術(shù)方案:
[0015] 本發(fā)明針對現(xiàn)有技術(shù)中在每一個可能出現(xiàn)錯誤的地方都需要去獨立的寫日志記 錄會加重代碼的維護(hù)難度和增加重復(fù)的代碼邏輯的問題,提供一種統(tǒng)一錯誤日志管理,包 括以下步驟:系統(tǒng)運行待檢測程序,檢測到異常時,啟動異常記錄程序?qū)Ξ惓P畔⑦M(jìn)行記 錄,并將異常信息進(jìn)行統(tǒng)一存儲。使用Nlog和Except ion Filter Attribute的特性實現(xiàn)了 在最外層捕獲日志并記錄在數(shù)據(jù)庫中,實現(xiàn)了 Log的統(tǒng)一捕獲和記錄,避免了獨立寫try catch模塊記錄日志。
[0016] 實施例
[0017]現(xiàn)有技術(shù)中常用的錯誤日志管理如下:
[0019] 需要獨立的寫try catch模塊記錄日志。當(dāng)系統(tǒng)運行待檢測程序時,運行上述錯誤 日志管理代碼后,當(dāng)檢測到任意代碼段有誤時,跳出運行程序?qū)﹀e誤代碼段進(jìn)行記錄。
[0020] 而本例中,系統(tǒng)運行待檢測程序,檢測到異常時,啟動異常記錄程序?qū)Ξ惓P畔⑦M(jìn) 行記錄,并將異常信息進(jìn)行統(tǒng)一存儲。程序運行與異常記錄分開運行,相互并不影響。
[0021] 通過使用Log Exception Filter實現(xiàn)父類Exception Filter Attribute的On Exception方法來檢測異常。系統(tǒng)在On Exception方法中使用Nlog日志記錄工具對異常信 息進(jìn)行記錄。其運行代碼結(jié)構(gòu)如下所示:
[0023]其中,Log Exception Filter的實現(xiàn)依賴于.net web Api的Exception Filter Attribute實現(xiàn),結(jié)構(gòu)如下所示:
[0026] 最后,利用Nlog的日志實現(xiàn)將Log Exception Filter捕獲的日志通過采用直接交 互數(shù)據(jù)庫的方式上傳至錯誤日志數(shù)據(jù)庫中。也可以直接將捕獲的日志進(jìn)行文件格式存儲, 所述文件格式至少包括文本、Json及xml格式。捕獲的日志即異常信息中至少包括日志ID、 日志發(fā)生時間、日志級別、日志信息文本、堆棧信息、日志來源及錯誤信息。
【主權(quán)項】
1. 統(tǒng)一錯誤日志管理方法,其特征在于,包括以下步驟:系統(tǒng)運行待檢測程序,檢測到 異常時,啟動異常記錄程序?qū)Ξ惓P畔⑦M(jìn)行記錄,并將異常信息進(jìn)行統(tǒng)一存儲。2. 根據(jù)權(quán)利要求1所述的統(tǒng)一錯誤日志管理方法,其特征在于,系統(tǒng)通過使用Log Exception Filter實現(xiàn)父類Exception Filter Attribute的On Exception方法來檢測異 常。3. 根據(jù)權(quán)利要求2所述的統(tǒng)一錯誤日志管理方法,其特征在于,系統(tǒng)在On Exception方 法中使用Nlog日志記錄工具對異常信息進(jìn)行記錄。4. 根據(jù)權(quán)利要求1所述的統(tǒng)一錯誤日志管理方法,其特征在于,異常信息統(tǒng)一存儲于錯 誤日志數(shù)據(jù)庫和/或文件格式存儲,所述文件格式至少包括文本、Json及xml格式。5. 根據(jù)權(quán)利要求4所述的統(tǒng)一錯誤日志管理方法,其特征在于,系統(tǒng)采用直接交互數(shù)據(jù) 庫的方式實現(xiàn)對異常信息進(jìn)行記錄,并將其上傳至錯誤日志數(shù)據(jù)庫中。6. 根據(jù)權(quán)利要求1所述的統(tǒng)一錯誤日志管理方法,其特征在于,所述異常信息至少包括 日志ID、日志發(fā)生時間、日志級別、日志信息文本、堆棧信息、日志來源及錯誤信息。
【文檔編號】G06F17/30GK106095914SQ201610405167
【公開日】2016年11月9日
【申請日】2016年6月7日
【發(fā)明人】魏勁超, 江濤
【申請人】四川長虹電器股份有限公司