我刚工作的一个旧的应用程序具有日志差或没有记录。 它没有实现Spring框架。
是否有可能实现AspectJ的日志记录功能没有春天?
如果是,请建议我一些很好的教程。
Answer 1:
试试这个链接,表示将使用负载时间编织的一个简单的应用程序,而无需使用弹簧http://ganeshghag.blogspot.in/2012/10/demystifying-aop-getting-started-with.html
一切将需要的是AspectJ运行和韦弗罐,并含有适当配置一个META-INF \ aop.xml文件的文件。
也请参阅链接,详细了解使用AspectJ LTW无弹簧http://www.eclipse.org/aspectj/doc/next/devguide/ltw.html
Answer 2:
您可以使用AspectJ的Spring没有(或log4j的)记录在任何AspectJ的消息支持joinpoints,
例如,
public aspect ListAllMethodExecution {
private int callDepth;
private pointcut executionJoinPoints(): !within(ListAllMethodExecution) && execution (* *.*(..));
before(): executionJoinPoints(){
print("Before call " + thisJoinPoint);
callDepth++;
}
after(): executionJoinPoints(){
callDepth--;
print("After call " + thisJoinPoint);
}
private void print(String s){
for(int i=0; i<callDepth; i++)
System.out.print(" ");
System.out.println(s);
}
}
您可以修改切入点表达式从特定事件或其他静电joinpoints,你可能有兴趣在一个特定的软件包进行登录。另外,你要重定向日志,你可以修改打印方法。
您可以使用加载时或编译时织入衣服给你。 希望这可以帮助。
Answer 3:
尝试加载时间与春天织 。
装载时织入(LTW)指的是编织的AspectJ到应用程序的类文件,因为它们被加载到Java虚拟机(JVM)的过程。
这意味着,你可以到类和consecuence添加记录方面Spring IoC容器之外的对象。
Answer 4:
也许这个开放源代码可以帮助你。 https://code.google.com/p/perfspy/ 。 这是一个运行时的日志记录,性能监控和检查代码的工具。 它采用ApsectJ在运行时在你的应用程序代码来编织,并记录每一个方法和它的输入参数和值的执行时间。 它有一个用户界面的应用程序,在其中您可以查看方法调用,并且它们的输入和返回值的树木。 有了它,你可以发现性能瓶颈,并理解复杂的代码流。