Author: davsclaus
Date: Thu Jan  6 07:09:32 2011
New Revision: 1055766

URL: http://svn.apache.org/viewvc?rev=1055766&view=rev
Log:
CAMEL-1902: throughput logger using interval logs number of messages received 
since last log. Thank to Ben for patch.

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/ThroughputLoggerTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java?rev=1055766&r1=1055765&r2=1055766&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
 Thu Jan  6 07:09:32 2011
@@ -78,11 +78,6 @@ public class ThroughputLogger extends Lo
                             Long groupInterval, Long groupDelay, Boolean 
groupActiveOnly) {
         super(logName, level);
 
-        //initialize the startTime (since no messages may be received before a 
timer log event)
-        if (startTime == 0) {
-            startTime = System.currentTimeMillis();
-        }
-
         this.camelContext = camelContext;
         setGroupInterval(groupInterval);
         setGroupActiveOnly(groupActiveOnly);
@@ -227,13 +222,17 @@ public class ThroughputLogger extends Lo
                 return;
             }
 
-            LOG.trace("ThroughputLogger started");
             createGroupIntervalLogMessage();
-            LOG.trace("ThroughputLogger complete");
         }
     }
 
     protected void createGroupIntervalLogMessage() {
+        
+        // this indicates that no messages have been received yet...don't log 
yet
+        if (startTime == 0) {
+            return;
+        }
+        
         int receivedCount = receivedCounter.get();
 
         // if configured, hide log messages when no new messages have been 
received
@@ -254,7 +253,7 @@ public class ThroughputLogger extends Lo
         groupStartTime = time;
         groupReceivedCount = receivedCount;
 
-        String message = getAction() + ": " + receivedCount + " messages so 
far. Last group took: " + duration
+        String message = getAction() + ": " + currentCount + " new messages, 
with total " + receivedCount + " so far. Last group took: " + duration
                 + " millis which is: " + numberFormat.format(rate)
                 + " messages per second. average: " + 
numberFormat.format(average);
         log(message);

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/ThroughputLoggerTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/ThroughputLoggerTest.java?rev=1055766&r1=1055765&r2=1055766&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/ThroughputLoggerTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/component/log/ThroughputLoggerTest.java
 Thu Jan  6 07:09:32 2011
@@ -52,7 +52,7 @@ public class ThroughputLoggerTest extend
     public void testSendMessageToLogUsingGroupInterval() throws Exception {
         context.addRoutes(new RouteBuilder() {
             public void configure() {
-                
from("seda:in").to("log:hello?groupInterval=200&groupDelay=100&groupActiveOnly=false").delay(50).to("mock:result");
+                
from("seda:in").to("log:hello?groupInterval=200&groupDelay=400&groupActiveOnly=false").delay(50).to("mock:result");
             }
         });
         context.start();


Reply via email to