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]

Reply via email to