Q7:メソッドの戻り値をログに記録するには?

以下は public であり、 void 以外の戻り値を持つメソッドを対象とし、その戻り値を出力するアスペクトです。

package logtest.aop.aspect;

import org.apache.log4j.*;

aspect ReturnValueTrace {
        
    private static final Logger logger = 
        Logger.getLogger("logtest.aop.aspect.ReturnValueTrace");
    pointcut returnValue(): execution(public !void *.*(..));

    after () returning(Object o): returnValue() {
        logger.debug("return value:" + o + " (at " + 
            thisJoinPoint.getSignature() + ")");
    }
}

トップページへ戻る