MethodTracer 取得class名称、方法、行号

来源:互联网 发布:华尔街见闻数据 编辑:程序博客网 时间:2024/05/29 02:43
package com.segsec.gisap.webservice;import java.util.Properties;public class MethodTracer {    private StackTraceElement elements[] ;        private int a[] = new int[2];    private int b;        public MethodTracer(){        }    public String getTrueMethod() {    elements = new Throwable().getStackTrace();/*        try {            b = a[4];        } catch (ArrayIndexOutOfBoundsException aioobe) {                    elements = aioobe.getStackTrace();            for(StackTraceElement element : elements){            System.out.println(element.getClassName()             + "\t" + element.getFileName()             + "\t" + element.getLineNumber()            + "\t" + element.getMethodName());            }                    }*/        //String path=elements[1].getClass();System.out.println("System.getProperty(\"java.class.path\"):"+this.getClass().getClassLoader().getResource("").getPath());    Properties props=System.getProperties();    System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));    return elements[1].getClassName() + "." + elements[1].getMethodName()        + "\t" + elements[1].getFileName() +":"+ elements[1].getLineNumber() ;    }        public static void main(String[] args){    new MethodTracer().mymethod();    }        public void mymethod(){    log("123");    }        public void log(String s){    System.out.println(new MethodTracer().getTrueMethod() + "[INFO]: " + s);    }}