Androidでログを打つテクニック

9384 ワード

Androidプラットフォームで開発を行うと、いくつかのLog出力デバッグ情報がよく使われます.
 
周知のように、androidには5つのタイプのLog,v,d,i,w,eがあります(これらの知らない友人にはandroid_Tutorのブログを見ることをお勧めしますhttp://blog.csdn.net/Android_Tutor/article/details/5081713 , 上で詳しく述べました)
本文は主にログの出力とオフを統一的に制御する方法について述べる.
一般的にはdebugのバージョンでlogを出力し、releaseバージョンの製品でlogの出力を閉じます.この点はどのようにしてできたのか、コードを見てみましょう.
現在作業中のプロジェクトに新しいクラスファイルLog.javaを作成します.このクラスファイルは現在作業中のパッケージに格納されます(このクラスファイルを格納するために個別にパッケージを作成することもできます).
次のクラスファイルではandroidの元の10個のlog関数を再パッケージしました.定数DEBUGが定義されており、DEBUGがtrueの場合にログ情報が出力される
 1 package com.android.gallery3d.util;  
 2   
 3 public class Log {  
 4     private static final boolean DEBUG = true;  
 5       
 6     public static void v(String tag, String msg) {  
 7         if(DEBUG) {  
 8             android.util.Log.v(tag, msg);  
 9         }  
10     }  
11     public static void v(String tag, String msg, Throwable tr) {  
12         if(DEBUG) {  
13             android.util.Log.v(tag, msg, tr);  
14         }  
15     }  
16     public static void d(String tag, String msg) {  
17         if(DEBUG) {  
18             android.util.Log.d(tag, msg);  
19         }  
20     }  
21     public static void d(String tag, String msg, Throwable tr) {  
22         if(DEBUG) {  
23             android.util.Log.d(tag, msg, tr);  
24         }  
25     }  
26     public static void i(String tag, String msg) {  
27         if(DEBUG) {  
28             android.util.Log.i(tag, msg);  
29         }  
30     }  
31     public static void i(String tag, String msg, Throwable tr) {  
32         if(DEBUG) {  
33             android.util.Log.i(tag, msg, tr);  
34         }  
35     }  
36     public static void w(String tag, String msg) {  
37         if(DEBUG) {  
38             android.util.Log.w(tag, msg);  
39         }  
40     }  
41     public static void w(String tag, String msg, Throwable tr) {  
42         if(DEBUG) {  
43             android.util.Log.w(tag, msg, tr);  
44         }  
45     }  
46     public static void w(String tag, Throwable tr) {  
47         if(DEBUG) {  
48             android.util.Log.w(tag, tr);  
49         }  
50     }  
51     public static void e(String tag, String msg) {  
52         if(DEBUG) {  
53             android.util.Log.e(tag, msg);  
54         }  
55     }  
56     public static void e(String tag, String msg, Throwable tr) {  
57         if(DEBUG) {  
58             android.util.Log.e(tag, msg, tr);  
59         }  
60     }  
61 }  

現在のパッケージではLog.v,Log.iを使用できます. Log.w,Log.e,Log.dがログを打つ.
他のパッケージでログを打つのも簡単で、importのクラス名だけでいいです.上記のクラスファイルを例にとると、他のパッケージのクラスファイルでimport com.android.gallery 3 d.util.Log; 
元のログ関数を使ってログを打つことができます.
 
ReleaseバージョンのソフトウェアでDEBUGをfalseにするとログ出力がオフになります.