diff --git a/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java b/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
index e1f6968..bcc434c 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
@@ -35,11 +35,24 @@ import org.aspectj.lang.annotation.Pointcut;
public class TracerAspect {
private static final boolean TRACER_ENABLE = System.getenv("TRACER_ENABLE") != null && System.getenv("TRACER_ENABLE").equals("true");
+ private static final long TRACER_MINIMUM_EXECUTION_TIME = getMinimumExecutionTime();
private static final String TRACER_TRACES = System.getenv("TRACER_TRACES") != null ? System.getenv("TRACER_TRACES") : "./traces";
private static final String TRACER_BLACKLIST = System.getenv("TRACER_BLACKLIST") != null ? System.getenv("TRACER_BLACKLIST") : "./blacklist";
private static final boolean TRACER_VERBOSE = System.getenv("TRACER_VERBOSE") == null || !System.getenv("TRACER_VERBOSE").equals("false");
private static final String TRACER_LOG = System.getenv("TRACER_LOG");
+ private static long getMinimumExecutionTime() {
+ String minimumExecutionTime = System.getenv("TRACER_MINIMUM_EXECUTION_TIME");
+ if (minimumExecutionTime == null) {
+ return 0;
+ }
+ try {
+ return Long.parseLong(minimumExecutionTime);
+ } catch (NumberFormatException ex) {
+ return 0;
+ }
+ }
+
@Pointcut("execution(!void *(..)) && !within(br.ufrgs.inf.prosoft.applicationtracer..*)")
public void anyMethodExecution() {
}
@@ -52,7 +65,7 @@ public class TracerAspect {
long startTime = System.currentTimeMillis();
Object proceed = joinPoint.proceed();
long endTime = System.currentTimeMillis();
- if (startTime == endTime) {
+ if (endTime - startTime < TRACER_MINIMUM_EXECUTION_TIME) {
return proceed;
}
String longsignature = joinPoint.getSignature().toLongString();