Java intelliJ idea 打印带定位的 log

48 阅读1分钟

相信大家在项目开发的过程中,会高频地使用日志作为分析的工具,下面我提供一个打印日志的同时,还能把日志打印的类,方法,当前行数,以及点击能定位到那行的日志工具类提供出来,让大家方便做日志调试

public class MyLogger {
    public static void log(String msg) {
        int index = 2;
        StringBuilder stringBuilder = new StringBuilder();
        // Print all method calls in the stack frame
        try {
            StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
            String className = stackTrace[index].getClassName();
            String fileName = stackTrace[index].getFileName();
            String methodName = stackTrace[index].getMethodName();
            int lineNumber = stackTrace[index].getLineNumber();

            stringBuilder.append(String.format("%s.%s", className, methodName)).append(String.format("(%s:%s)",fileName, lineNumber));
        } catch (Exception e) {
            System.out.println(e);
        }
        String finalMsg = String.format("%s: %s", stringBuilder, msg);
        // Print clickable link
        System.out.println(finalMsg);
    }
}