application-tracer

Details

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();