一直在用log4j但是不清楚其中的原理,关键代码如下:

通过new Throwable().getStackTrace();获取当前执行代码的栈,其中包括了正在执行的类名、方法名,

和文件名:

 
  
  1. StackTraceElement elements[] ;   
  2.      elements =new Throwable().getStackTrace(); 
  3.      for(int i=0;i<elements.length;i++) 
  4.      { 
  5.          System.out.println("测试"+elements[i].getLineNumber()+
  6. "-"+elements[i].getClassName() + "-" + elements[i].getMethodName()+
  7. "-"+elements[i].getFileName());   
  8.      } 
  9.           

通过配置文件确定debug、info、error是否存在,进入logger内部判断是否执行相应级别!

 
  
  1. logger.debug("This is debug message from Dao.");   
  2.        // 记录info级别的信息   
  3.        logger.info("This is info message from Dao.");   
  4.        // 记录error级别的信息   
  5.        logger.error("This is error message from Dao.");