ceki 2004/12/23 10:04:46
Modified: src/java/org/apache/log4j/pattern
RelativeTimePatternConverter.java
Log:
Added a very simple caching mechanism to RelativeTimePatternConverter
Revision Changes Path
1.7 +13 -3
logging-log4j/src/java/org/apache/log4j/pattern/RelativeTimePatternConverter.java
Index: RelativeTimePatternConverter.java
===================================================================
RCS file:
/home/cvs/logging-log4j/src/java/org/apache/log4j/pattern/RelativeTimePatternConverter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- RelativeTimePatternConverter.java 16 Sep 2004 19:18:58 -0000 1.6
+++ RelativeTimePatternConverter.java 23 Dec 2004 18:04:46 -0000 1.7
@@ -29,15 +29,25 @@
// which is unique within an appender. We further assume that callas to
the
// appender method are serialized (per appender).
StringBuffer buf;
-
+ long lastTimestamp = 0;
+
+
public RelativeTimePatternConverter() {
super();
this.buf = new StringBuffer(9);
}
public StringBuffer convert(LoggingEvent event) {
- buf.setLength(0);
- buf.append(Long.toString(event.getTimeStamp() -
LoggingEvent.getStartTime()));
+ long timestamp = event.getTimeStamp();
+ // if called multiple times within the same milliseconds
+ // return old value
+ if(timestamp == lastTimestamp) {
+ return buf;
+ } else {
+ buf.setLength(0);
+ lastTimestamp = timestamp;
+ buf.append(Long.toString(timestamp - LoggingEvent.getStartTime()));
+ }
return buf;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]