【问题标题】:adding aspectj logging to java web application将 aspectj 日志记录添加到 Java Web 应用程序
【发布时间】:2014-01-23 10:29:19
【问题描述】:

我是 aspectj 的新手,所以我的问题可能很荒谬。我有一个 java web 应用程序,我希望在之前和之后打印所有正在运行的方法名称。所以我添加了一个 aspectj-1..7.4.jar 和一个如下所示的类。但它不会打印到日志文件。有什么我忘了或我能做什么?提前谢谢。

@Aspect
 public class LogAspect {

 final Logger log = Logger.getLogger(LogAspect.class);

   @Pointcut("execution(* *.*(..))")
    public void defineEntryPoint() {
    }

    @Before("defineEntryPoint()")
    public void beforeMethod(JoinPoint joinPoint) {
        log.error("Before" + joinPoint.getSignature());
        System.out.println("Before" + joinPoint.getSignature());

    }

    @After("defineEntryPoint()")
    public void afterMethod(JoinPoint joinPoint) {
        log.error("After" + joinPoint.getSignature());
        System.out.println("After" + joinPoint.getSignature());

    }
}

【问题讨论】:

    标签: java logging aspectj


    【解决方案1】:

    它没有打印到日志文件,但你在控制台中看到你的 system.out 了吗?

    我建议将execution(* *.*(..)) 更改为execution(* *(..))

    我不知道您要拦截的类的包,但在我看来,使用 *.*(..) 您只能获取 anypackage.anyPackage 中的类

    【讨论】:

    • 我也没有看到我的控制台。我尝试execution(* *(..)) 没有用。
    • 你在使用 Spring 吗?
    • 是的,但我没有集成 aspectj 和 spring。
    • 如果你能用spring,那是最好的解决方案,而且好用。你能发布你的 pom.xml 的一部分吗?既然你没有使用 spring,我认为你应该看看这个:ridgetopsolutions.com/blog/2013/02/12/…你可能在你的 pom 中遗漏了一些东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2011-07-11
    • 2016-02-26
    • 1970-01-01
    相关资源
    最近更新 更多