android上一個可追蹤代碼到函數具體某行的日誌類

來源:互聯網
上載者:User

代碼如下:
[java] 
package xiaogang.enif.utils; 
 
/**
 * The Class LogUtils for log printing, which help us
 * easy to trace our codes or logics in the project .
 * 
 * @author zhao xiaogang
 * @time   2011.4.12
 */ 
public class LogUtils { 
 
    private final static int VERBOSE = 0; 
    private final static int DEBUG = 1; 
    private final static int INFO = 2; 
    private final static int WARN = 3; 
    private final static int ERROR = 4; 
    private final static int DEFAULT_LEVEL = -1; 
 
    private int level; 
 
    private final String clazz; 
 
    private static final String TAG = "LogUtils"; 
 
    public static LogUtils getDebugLog(Class<?> clazz, int l) { 
        LogUtils log = new LogUtils(clazz); 
        log.level = l; 
        return log; 
    } 
 
    public static LogUtils getLog(Class<?> clazz) { 
        return new LogUtils(clazz); 
    } 
 
    public LogUtils(Class<?> clazz) { 
        this.clazz = "[" + clazz.getSimpleName() + "] "; 
        level = DEFAULT_LEVEL; 
    } 
 
    public void verbose(String message) { 
        verbose(message, null); 
    } 
 
    public void debug(String message) { 
        debug(message, null); 
    } 
 
    public void info(String message) { 
        info(message, null); 
    } 
 
    public void warn(String message) { 
        warn(message, null); 
    } 
 
    public void error(String message) { 
        error(message, null); 
    } 
 
    public void verbose(String message, Throwable t) { 
        if (VERBOSE < level) 
            return; 
        if (message != null) 
            android.util.Log.v(TAG, clazz + " Line: " + getLineNumber() + " : " + message); 
        if (t != null) 
            android.util.Log.v(TAG, clazz + " Line: " + getLineNumber() + " : " + t.toString()); 
    } 
 
    public void debug(String message, Throwable t) { 
        if (DEBUG < level) 
            return; 
        if (message != null) 
            android.util.Log.d(clazz, clazz + " Line: " + getLineNumber() + " : " + message); 
        if (t != null) 
            android.util.Log.d(clazz, clazz + " Line: " + getLineNumber() + " : " + t.toString()); 
    } 
 
    public void info(String message, Throwable t) { 
        if (INFO < level) 
            return; 
        if (message != null) 
            android.util.Log.i(TAG, clazz + " Line: " + getLineNumber() + " : " + message); 
        if (t != null) 
            android.util.Log.i(TAG, clazz + " Line: " + getLineNumber() + " : " + t.toString()); 
    } 
 
    public void warn(String message, Throwable t) { 
        if (WARN < level) 
            return; 
        if (message != null) 
            android.util.Log.w(TAG, clazz + " Line: " + getLineNumber() + " : " + message); 
        if (t != null) 
            android.util.Log.w(TAG, clazz + " Line: " + getLineNumber() + " : " + t.toString()); 
    } 
 
    public void error(String message, Throwable t) { 
        if (ERROR < level) 
            return; 
        if (message != null) 
            android.util.Log.e(TAG, clazz + " Line: " + getLineNumber() + " : " + message); 
        if (t != null) 
            android.util.Log.e(TAG, clazz + " Line: " + getLineNumber() + " : " + t.toString()); 
    }  www.2cto.com
 
    private static int getLineNumber() { 
        return Thread.currentThread().getStackTrace()[5].getLineNumber(); 
    } 

 
好用的話,記得給好評,嘿嘿!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.