日志記錄與異常處理規范精_第1頁
日志記錄與異常處理規范精_第2頁
日志記錄與異常處理規范精_第3頁
日志記錄與異常處理規范精_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、日志記錄與異常處理規范(2006-09-19 10:02:15轉載日志記錄與異常處理規范 1日志記錄規范規范日志設計規范主要目的是節省工作量,幫助對問題進行診斷。 最終,終端用戶可以獲得更好的應用程序,并能從技術支持團隊獲得迅速的響應。1.1日志API在使用Java平臺進行開發時,使用的日志 API: Log4j-1.2.8.jar 1.2日 志分類I Security:記錄外部對系統進行的各項操作I Bus in ess:記錄和跟蹤業務邏 輯執行過程l Performanee:記錄和跟蹤代碼執行情況1.3日志級別日志級別有:l Debug:包含了非常廣泛的上下文信息,用于問題診斷。I Inf

2、o:用于在產品環境中(粒度較粗)幫助跟蹤執行過程的上下文消息。I Warni ng:警告消息,說明系統中可能存在問題。例如,如果這個消息類別是有關安全性方面的。I Error:錯誤消息說明系統中出現了嚴重的問題。這種問題通常都是不可恢復的,需要人工進行干 預。表1日志記錄程序pubIie eIass Log4JTest / Logging類由EMIP平臺提供 Logging Iogging = Logging.getInstance(STDOUT; pubIie void testLogging( / 安全日 志 I(安全類型 INFO 級日志記錄;Iogging.inf

3、o(Logging. SECURITY,安 全類型INFO級日志記錄;I(Logging. SECURITY,安全類型INFO級日 志記錄,new RuntimeExeeption(; Iogging.error(”安全類型 ERROR級日志記錄;Iogging.error(Logging. SECURITY,安全類型 ERROR級日志記錄;Iogging.error(Logging. SECURITY,安全類型 ERROR級日志記錄,new RuntimeExeeption(; 業務日志I(業務類型INFO級日志記錄;I(Lo

4、gging. BUSINESS,業務類型 INFO 級日志記錄;I(Logging. BUSINESS,業務類型 INFO 級日志記錄, new Run timeExeeptio n(; loggi ng.error(” 業 務類型 ERROR級日志記錄;Iogging.error(Logging. BUSINESS,業務類型 ERROR 級日志記錄;Ioggi ng.error(Loggi ng. BUSINESS,業務類型 ERROR 級日志記錄, new RuntimeExeeption(; 系統日志I(業務類型INFO級日志記錄;Ioggin

5、(Logging. BUSINESS,業務類型 INFO 級日志記錄;I(Logging. BUSINESS,業務類型 INFO 級日志記錄, new Run timeExeeptio n(; loggi ng.error(業 務類型 ERROR級日志記錄;logging.error(Logging. BUSINESS,業務類型 ERROR 級日志記錄;loggi ng.error(Loggi ng. BUSINESS,業務類型 ERROR 級日志記錄, new RuntimeExeeption(; (系統類型 INFO 級日志記錄;l

6、(Logging.PERFORMANCE,系統類型 INFO 級日志記錄; (Logging.PERFORMANCE,系統類型 INFO 級日志記錄 ”,new RuntimeException(; logging.error(”系統類型 ERROR級日志記錄;logging.error(Logging.PERFORMANCE,系統類型 ERROR 級日志記錄; logging.error(Logging.PERFORMANCE,系統類型 ERROR 級日志記錄 ”,new Run timeExcepti on (; public static v

7、oid main( Stri ng args Log4JTest log4JTest = new Log4JTest(; log4JTest.testLogg in g(; 輸出結果(日志記錄 的頭部分的組成結構是:時間戳+ 日志級別+ 日志類型+日志內容) 2006-09-13 18:43:38 INFO安全類型 INFO 級日志記錄2006-09-13 18:43:38 INFO SECURITY安全類型 INFO 級日志記錄2006-09-13 18:43:38 INFO SECURITY安全類型 INFO 級日志記錄 java.lang.RuntimeException at com.

8、huawei.test.log4j.Log4JTest.testLoggi ng(Log4JTest.java:11 at com.huawei.test.log4j.Log4JTest.mai n( Log4JTest.java:31 2006-09-13 18:43:38 ERROR安全類型 ERROR 級日志記錄2006-09-13 18:43:38 ERROR SECURITY安全類型 ERROR 級日志記錄2006-09-13 18:43:38 ERROR SECURITY安全類型 ERROR 級日志記錄 java.lang.RuntimeException at com.huawe

9、i.test.log4j.Log4JTest.testLoggi ng(Log4JTest.java:13 at com.huawei.test.log4j.Log4JTest.mai n( Log4JTest.java:31 2006-09-13 18:43:38 INFO 業務類型 INFO 級日志記錄2006-09-13 18:43:38 INFO BUSINESS業務類型 INFO 級日志記錄2006-09-13 18:43:38 INFO BUSINESS業務類型 INFO 級日志 t 己錄 java .lan g.R un timeExcepti on at com.huawei.

10、test.log4j.Log4JTest.testLoggi ng(Log4JTest.java:17 at com.huawei.test.log4j.Log4JTest.mai n( Log4JTest.java:31 2006-09-13 18:43:38 ERROR業務類型 ERROR級日志記錄2006-09-13 18:43:38 ERROR BUSINESS 業務類型 ERROR 級日志記錄2006-09-13 18:43:38 ERROR BUSINESS業務類 型 ERROR 級日志記錄 java.lang.RuntimeException at com.huawei.test

11、.log4j.Log4JTest.testLoggi ng(Log4JTest.java:19 at com.huawei.test.log4j.Log4JTest.mai n( Log4JTest.java:31 2006-09-13 18:43:38 INFO系統類型 INFO 級日志記錄2006-09-13 18:43:38 INFO PERFORMANCE系統類 型 INFO 級日志記錄2006-09-13 18:43:38 INFO PERFORMANCE系統類型 INFO 級日志記錄 javaang.RuntimeException at com.huawei.test.log4j

12、 丄 og4JTest.testLoggi ng(Log4JTest.java:23 at com.huawei.test.log4j.Log4JTest.mai n( Log4JTest.java:31 2006-09-13 18:43:38 ERROR系統類型 ERROR 級日志記錄2006-09-13 18:43:38 ERROR PERFORMANCE系統類型 ERROR 級日志記錄2006-09-13 18:43:38 ERROR PERFORMANCE系統類型 ERROR 級日志記錄 java.lang.RuntimeException at com.huawei.test.log

13、4j丄og4JTest.testLogging(Log4JTest.java:25 at com.huawei.test.log4j.Log4JTest.mai n( Log4JTest.java:31 1.43 志消息的格式除了典 型的應用程序狀態信息之外,通過配置還應記錄以下信息(配置方法參見配置模 版):I線程ID l調用程序的標識I時間戳I源代碼信息1.5日志配置1.5.1日志配 置模板日志模版部署在同一應用平臺上的各個模塊,使用同一個XML配置文件進行配置。各個模塊在配置文件中配置各自的日志Appe nder。1.5.2動態配置文件 EMIP平臺的在 Logging 類中使用 DOM

14、Configurator 中的 configureAndWatch(方 法會對Log4J進行配置,默認一分鐘為周期動態監視日志配置文件。1.6日志記錄規范1.不要把system.out用于日志記錄。2.被認為 已完成”或無 隱錯的代碼,也應該能夠根據配置輸出日志(因為總有存在隱錯的可能性,可能是 通過修改引入的)。3.除非代碼能夠生成日志消息,并且它的日至輸出能夠被容 易的配置,否則它不可用于生產環境。4.在重要代碼段中需要詳盡的日志記錄輸出。5.在用于生產環境前,需要修改和改進維護期間的日志記錄陳述(例如,如 果日志輸出顯得不明確)。6.日志消息應該分成不同優先級,并且調試消息應該 指出一個

15、構件的整個工作流程。7.明確日志消息優先級的選擇,具有相同優先級的日志消息應該揭示一致級別的細節。8.從異常中提取有用信息l發生一個非預期的異常時:首先,必須記錄異常及其堆棧跟蹤狀況。其次,應該使用一種用戶界 面友好的方式來標識錯誤頁面,這對于終端用戶和技術支持小組來說都是非常有幫 助的。l使用戶所報告的問題與特定的日志異常之間建立某種關聯:為每個異常都 記錄一個唯一的ID。這個ID可以告訴用戶,也可以包含在終端用戶所填寫的問題報告表單中。讓技術支持團隊可以快速對問題作出響應。考慮到可讀性的問題。9.確保日志記錄語句中調用toStri ng(方法的對象不會是空值,以免這些語句引起失 敗。10.

16、通過相應的配置,用來顯示生成日志輸出的那個類、方法和行號( Log4j 提供此功能)。該設置在生產中應該被關閉,因為生成這類信息的代價非常高。11.記錄日志時不要把toString(方法用在訪問具有許多方法并生成大串的復雜對象 上。(也可以給這種日志輸出定義一個低優先級的輸出級別)。1.7日志文件的管理日志文件的生成根據具體情況選用以下兩者之一:I Rolli ngFileAppe nder lDailyRollingFileAppender 2異常處理規范2.1規范1.當程序產生異常時,必須捕捉 并處理異常、將異常記錄到日志中(除非打算拋出異常)。2.不要處理能夠避免的異常。3.在異常處理模

17、塊中提供適量的錯誤原因信息。4.使用fin ally避免資源泄露。5.不要從try區段中返回。6.不要在fin ally內部使用return語句。它不僅 會影響函數的正確返回值,而且它可能還會導致一些異常處理過程的意外終止,最 終導致某些異常的丟失。7.將try/catch區段置于循環之外。8.不要將異常用于程 序流程控制。9.通過拋出異常,獲取構造函數中的錯誤信息。10.拋出異常之前先將對象恢復為有效狀態。11.記錄異常不要保存exception.getMessage(而要記錄 exceptio n.toStri ng(。12. 一個方法不應拋出太多類型的異常。說明:如果程序中需要分類處理,則將異常根據分類組織成繼承關系。如果確 實有很多異常類型首先考慮用異常描述來區別,throws/exception子句標明的異常最好不要超過三個。13.不要定義Error和Runt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論