• 有没有这样的想法, 学习中, 测试自己的代码效果, 又怕关键地方出现预料之外的错误, 所以会想在关键地方打印出关键信息. 很多时候通过这种方式能够快速定位bug的原因, 而又不用打断点费力的调试. 个人认为这种方式是很好的轻量级的debug方式. 其实就是借鉴日志的思想.

  • 那么问题来了, 要麻烦的写上System.out.println("balbabal")吗.

  • 笔者这个工具类就是为了解决这个麻烦的.

主要优点

  • 使用简单

  • 可点击跳转(这是最大的优点)

主要是借鉴了异常输出时的信息, 利用throwable接口实现我要的功能.

效果图

clipboard.png

源码

package com.__note__.utils;

import org.junit.Test;

public class Log {
    

    
    // 直接调用trace(Object o)则为1, 二次调用则为2
    private static int steNum = 1;
    
    public static void trace(Object o) {
        Throwable throwable = new Throwable();      // 0
        StackTraceElement ste;
        ste = throwable.getStackTrace()[steNum];
        // 每次调用应该讲steNum归为1
        steNum = 1;
        System.out.println(o + "\t\t...at\t" + ste);
        
    }
    
    public static void trace() {
        steNum = 2;     // 2次调用
        trace("");
    }
    
    
    public static void begin() {
        steNum = 2;
        trace("BEGIN: ");
    }
    
    public static void end() {
        steNum = 2;
        trace("END: ");
    }
    
    
    @Test
    public void fun() {
        Log.trace();
        Log.trace("方法开始");
        Log.trace(new Object());
        Log.trace(998);
        
        // 可在方法调用开始时标记
        Log.begin();
        
        // 可在方法调用结束时标记
        Log.end();
        
    }
    
}

Nisus
200 声望6 粉丝

如果生命只有一次, 我愿意尝试各种可能!