在企業級的開發過程中,我們不可避免地會碰到很多問題;假如您希望在開發過程的后期能夠有效地捕捉 bug,那就需要一種有效的日志策略。但是在一個企業的應用程序中要想實現有效地記錄日志,需要進行一番規劃,并設計一些準則。在本文中,顧問 Charles Chan 將向您介紹一些最好的實踐,從而幫助您從項目一開始就編寫有用的日志代碼。
假如您是一名開發人員,那您很可能就已經具有這種經驗:您已經開發了一些代碼以及一些測試用例。應用程序經過了嚴格的 QA 測試,您確信代碼可以完全適合業務的需求。然而,在將應用程序最終交付終端用戶的手里時,卻會出現一些預想不到的問題。假如沒有適當的日志消息,可能需要花費幾天的時間來診斷這些問題。不幸的是,大部分項目對于日志都沒有一個清楚的策略。假如沒有這種策略,系統產生的日志消息就有可能無益于問題的分析和解決。在本文中,我們將討論企業應用程序日志的各個方面的問題。您將看到一個 java™ 平臺上日志 API 的概述,學習一些最好的編寫日志代碼的實踐,并了解假如需要在產品環境中對具體日志重新進行排序,應該如何處理。
Log4J 和 Java Logging API 都采用了類似的設計和使用模式(如圖 1 和清單 1 所示)。消息首先被創建,然后傳遞給一個具有特定優先權的日志對象。這些消息的目的和格式是由輸出處理程序及其布局所決定。
清單 1. 日志對象的實例化和使用
import org.apache.log4j.Logger;public class MyClass { /* * OBTain a logger for a message category. In this case, the message category is * the fully qualified class name of MyClass. */ PRivate static final Logger logger = Logger.getLogger(MyClass.class.getName()); ... public void myMethod() { ... if (logger.isDebugEnabled()) { logger.debug("Executing with parameters: " + param1 + ":" + param2); } }}