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