最近在封装一个Java报警的SDK,期望应用程序在调用SDK报警API方法时能调用类和调用方法名并通过邮件和短信的方式通知给开发者。
大致有两种方式,总结一下。
1. 通过Throwable.getStackTrace()
StackTraceElement[] arr = (new Throwable()).getStackTrace();
for(int i=0; i
StackTraceElement el = arr[i];
System.out.println(i+"\t"+el.getClassName()+"\t" +el.getMethodName()+"\t"+el.getLineNumber());
}
简单模拟一下日志框架(log4j、lobback)的功能,如下:
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* ${DESCRIPTION}
*
* @author Ricky Fung
*/
public class StackTraceTest {
public static void main(String[] args) {
Log log = new Log();
log.info("hello");
}
}
class Log {
public void info(String msg) {
S