https://blog.csdn.net/sunny_na/article/details/55212029
这个讲的比那个什么超详细的好多了,感谢。
这是我犯过的错误:
1.##的注释只能在properties的开始出现
2.当时我是在前置通知和后置通知里用的log4j,老师的要求是后置通知打印时间、类名、方法名、参数、返回值,后置通知的方法如下:
1 public void afterReturning(Object o, Method method, Object[] objects, Object o1)
o是返回值,o1是类名,我给弄反了。之后总的记录日志操作如下:
public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable {
System.out.println("方法执行结束了");
PropertyConfigurator.configure("log4j.properties");
Logger logger = Logger.getLogger(MyClass.class);
int len = objects.length;
String param = "";
for (int i=0; i<len; i++) {
param += objects[i].getClass().getSimpleName()+" "+objects[i].toString();
if (i != len-1) {
param += ", ";
}
}
logger.info("@class:"+o1.getClass().getSimpleName()+
" @method:"+method.getName()+
" @param:"+param+
" @return:"+o.getClass().getSimpleName()+" "+o.toString());
System.out.println("************************************");
}
效果:
D:\Java\jdk1.8.0_191\bin\java.exe
方法开始执行了
[INFO]<2018-11-24 16:26:51,804
@class:MyClass @method:f1 @param:Integer 19, String Ryan>
My name's Ryan, and I'm 19 years old.
方法执行结束了
[INFO]<2018-11-24 16:26:51,811
@class:MyClass @method:f1 @param:Integer 19, String Ryan @return:Integer 0>
************************************