Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> 對Android JDK日志總結之談

對Android JDK日志總結之談

編輯:高級開發

android JDK日志可以促使移動設備的創新,讓用戶體驗到最優越的移動服務,同時,開發商也將得到一個新的開放級別,豐富的開發環境 包括設備模擬器,調試工具,內存及性能分析圖表,和Eclipse集成開發環境插件。

由該類可見,android JDK日志抽象類提供了抽象接口:publish, flush 和 close .這些接口提供了日志輸出的基本功能。同時 Handler 類保存了 Formatter,Filter 和 Level 對象用來控制日志輸出。因此,編寫自定義的 Handler 類需要如下步驟:

1、繼承 Handler 抽象類

2、實現 publish,flush 和 close 方法。其中 publish 方法是用於發布一條日志記錄。 flush 方法是清空內存緩沖區。 close 方法是當應用程序關閉的時候,釋放該 Handler 類所申請的資源(如文件,socket 等)

3、設置默認的 Formatter,Filter 和 Level 對象。必要的時候,可以在類的初始化時候讀取配置文件來設置這些參數。

  1. public class MyFormatter extends Formatter {
  2. private final String lineSeparator = System.getProperty("line.separator");
  3. @Override
  4. public String format(LogRecord record) {
  5. StringBuffer sb = new StringBuffer();
  6. String message = formatMessage(record);
  7. sb.append(record.getLevel().getLocalizedName());
  8. sb.append(message);
  9. sb.append(lineSeparator);
  10. if (record.getThrown() != null) {
  11. try {
  12. StringWriter sw = new StringWriter();
  13. PrintWriter pw = new PrintWriter(sw);
  14. record.getThrown().printStackTrace(pw);
  15. pw.close();
  16. sb.append(sw.toString());
  17. } catch (Exception ex) {
  18. }
  19. }
  20. return sb.toString();
  21. }
  22. }

這裡 reportError 方法是將日志類中的錯誤信息輸出到外界,這個是由 ErrorManager 類實現的ErrorManager 類負責記錄日志框架中 Handler 的錯誤。一般情況下是將該錯誤打印到控制台中。

具體的每條日志消息被android JDK日志框架封裝成 LogRecord 對象,該類部分定義如 清單所示。由清單可見,LogRecord 類包含了一個日志消息的級別、消息文本、時間、參數、線程等等所有的信息,這些都交給 Handler,Formatter 和 Filter 這些對象來處理。

同時該類也是可序列化的,可以序列化到網絡和文件中。該類還可以和一個 ResourceBundle 對象綁定,實現消息字符串的本地化處理。描述了一個典型的自定義的 Handler 類的實現。在本文後面部分將會有一個實際的例子來介紹如何實現一個android JDK日志處理類。

  1. 上一頁:
  2. 下一頁: