org.apache.log4j.helpers
abstract public class: PatternConverter [javadoc |
source]
java.lang.Object
org.apache.log4j.helpers.PatternConverter
Direct Known Subclasses:
CategoryPatternConverter, NamedPatternConverter, LocationPatternConverter, BasicPatternConverter, ClassNamePatternConverter, DatePatternConverter, LiteralPatternConverter, MDCPatternConverter
PatternConverter is an abtract class that provides the
formatting functionality that derived classes need.
Conversion specifiers in a conversion patterns are parsed to
individual PatternConverters. Each of which is responsible for
converting a logging event in a converter specific manner.
- author:
< - a href="mailto:cakalijp@Maritz.com">James P. Cakalic
- author:
Ceki - Gülcü
- since:
0.8.2 -
| Field Summary |
|---|
| public PatternConverter | next | |
| int | min | |
| int | max | |
| boolean | leftAlign | |
| static String[] | SPACES | |
| Method from org.apache.log4j.helpers.PatternConverter Detail: |
abstract protected String convert(LoggingEvent event)
Derived pattern converters must override this method in order to
convert conversion specifiers in the correct way. |
public void format(StringBuffer sbuf,
LoggingEvent e) {
String s = convert(e);
if(s == null) {
if(0 < min)
spacePad(sbuf, min);
return;
}
int len = s.length();
if(len > max)
sbuf.append(s.substring(len-max));
else if(len < min) {
if(leftAlign) {
sbuf.append(s);
spacePad(sbuf, min-len);
}
else {
spacePad(sbuf, min-len);
sbuf.append(s);
}
}
else
sbuf.append(s);
}
A template method for formatting in a converter specific way. |
public void spacePad(StringBuffer sbuf,
int length) {
// 32 spaces
while(length >= 32) {
sbuf.append(SPACES[5]);
length -= 32;
}
for(int i = 4; i >= 0; i--) {
if((length & (1< < i)) != 0) {
sbuf.append(SPACES[i]);
}
}
}
Fast space padding method. |