直接上源码,打出当前执行的类名,方法名以及代码所在行。
package org.apache.log4j.test; public class TestUtil { public static void LogUtil(Class clazz, Object message) { // String clzz = // Thread.currentThread().getStackTrace()[1].getClassName(); // System.out.println(clazz.getSimpleName()); // String method = // Thread.currentThread().getStackTrace()[1].getMethodName(); // String clazz1 = clazz.getClass().getName(); // System.out.println(clazz.getMethods()[0]); StringBuffer sb = new StringBuffer(); StackTraceElement[] stacks = new Throwable().getStackTrace(); int stacksLen = stacks.length; sb.append("当前执行的类是【" + stacks[1].getClassName()).append("+】在第") .append("【").append(stacks[1].getLineNumber()).append("】") .append("】方法名【" + stacks[1].getMethodName()); } public static void LogUtil() { StringBuffer sb = new StringBuffer(); StackTraceElement[] stacks = new Throwable().getStackTrace(); int stacksLen = stacks.length; sb.append("当前执行的类是:" + stacks[1].getClassName()).append(";在第") .append("【").append(stacks[1].getLineNumber()).append("】") .append(";方法名:" + stacks[1].getMethodName()); System.out.println(sb.toString()); } public static void LogUtil(Object message) { StringBuffer sb = new StringBuffer(); StackTraceElement[] stacks = new Throwable().getStackTrace(); int stacksLen = stacks.length; sb.append("提示信息:[class:" + stacks[1].getClassName()).append("]") .append("【lineNumber:").append(stacks[1].getLineNumber()).append("】") .append("[methodName:" + stacks[1].getMethodName()).append("]【message:").append(message).append("】"); System.out.println(sb.toString()); } }