import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Aspect //Replace "com.package" with your project package public class StatementTracing { static final Logger logger = LoggerFactory.getLogger("jdbc.sql"); @Pointcut("call(* java.sql.Statement.execute*(java.lang.String)) && args(sql) && within(com.package..*)") public void execute(String sql) { } @Pointcut("call(* java.sql.Statement.addBatch(java.lang.String)) && args(sql) && within(com.package..*)") public void addBatch(String sql) { } @Pointcut("call(* java.sql.Connection.prepareCall(java.lang.String)) && args(sql) && within(com.package..*)") public void prepareCall(String sql) { } @Pointcut("execute(sql) || addBatch(sql) || prepareCall(sql)") public void sqlOperation(String sql) { } @Before("sqlOperation(sql)") public void printQuery(String sql) { logger.info(sql); } }