Skip to content

Commit

Permalink
use StringBuffer in converters
Browse files Browse the repository at this point in the history
  • Loading branch information
ceki committed Feb 3, 2017
1 parent 32a2047 commit 387c7cc
Show file tree
Hide file tree
Showing 56 changed files with 353 additions and 239 deletions.
Expand Up @@ -92,7 +92,7 @@ private void appendEventToBuffer(StringBuilder buf, Converter<IAccessEvent> c, I
buf.append("<td class=\"");
buf.append(computeConverterName(c));
buf.append("\">");
c.write(buf, event);
c.format(buf, event);
buf.append("</td>");
buf.append(LINE_SEPARATOR);
}
Expand Down
Expand Up @@ -22,4 +22,9 @@ public String convert(IAccessEvent accessEvent) {
return accessEvent.getRemoteHost();
}

@Override
public void gcfConvert(IAccessEvent accessEvent, StringBuilder out) {
out.append(accessEvent.getRemoteHost());
}

}
Expand Up @@ -39,4 +39,13 @@ public String convert(IAccessEvent accessEvent) {
return accessEvent.getAttribute(key);
}

@Override
public void gcfConvert(IAccessEvent accessEvent, StringBuilder out) {
if (!isStarted()) {
out.append("INACTIVE_REQUEST_ATTRIB_CONV");
} else {
out.append(accessEvent.getAttribute(key));
}
}

}
Expand Up @@ -18,6 +18,7 @@

public class RequestCookieConverter extends AccessConverter {

private static final String INACTIVE_COOKIE_CONVERTER = "INACTIVE_COOKIE_CONVERTER";
String key;

@Override
Expand All @@ -33,9 +34,19 @@ public void start() {
@Override
public String convert(IAccessEvent accessEvent) {
if (!isStarted()) {
return "INACTIVE_COOKIE_CONVERTER";
return INACTIVE_COOKIE_CONVERTER;
}

return accessEvent.getCookie(key);
}

@Override
public void gcfConvert(IAccessEvent accessEvent, StringBuilder out) {
if (!isStarted()) {
out.append(INACTIVE_COOKIE_CONVERTER);
} else {
out.append(accessEvent.getCookie(key));
}

}
}
Expand Up @@ -31,4 +31,9 @@ public String convert(IAccessEvent accessEvent) {
return accessEvent.getResponseContent();
}

@Override
public void gcfConvert(StringBuilder out, IAccessEvent accessEvent) {
out.append(accessEvent.getResponseContent());
}

}
Expand Up @@ -112,7 +112,10 @@ private void appendEventToBuffer(StringBuilder buf, Converter<ILoggingEvent> c,
buf.append("<td class=\"");
buf.append(computeConverterName(c));
buf.append("\">");
buf.append(Transform.escapeTags(c.convert(event)));

StringBuilder temp = new StringBuilder();
c.gcfConvert(event, temp);
buf.append(Transform.escapeTags(temp.toString()));
buf.append("</td>");
buf.append(LINE_SEPARATOR);
}
Expand Down
Expand Up @@ -52,8 +52,7 @@ public String doLayout(ILoggingEvent event) {
sb.append(CoreConstants.LINE_SEPARATOR);
IThrowableProxy tp = event.getThrowableProxy();
if (tp != null) {
String stackTrace = tpc.convert(event);
sb.append(stackTrace);
tpc.gcfConvert(event, sb);
}
return sb.toString();
}
Expand Down
Expand Up @@ -20,5 +20,5 @@
*/
public interface Abbreviator {

String abbreviate(String in);
void abbreviate(String in, StringBuilder out);
}
Expand Up @@ -109,8 +109,8 @@ private void addEvaluator(EventEvaluator<ILoggingEvent> ee) {
evaluatorList.add(ee);
}

public String convert(ILoggingEvent le) {
StringBuilder buf = new StringBuilder();
@Override
public void gcfConvert(ILoggingEvent le, StringBuilder buf) {

if (evaluatorList != null) {
boolean printCallerData = false;
Expand All @@ -136,7 +136,8 @@ public String convert(ILoggingEvent le) {
}

if (!printCallerData) {
return CoreConstants.EMPTY_STRING;
buf.append(CoreConstants.EMPTY_STRING);
return;
}
}

Expand All @@ -151,9 +152,9 @@ public String convert(ILoggingEvent le) {
buf.append(cda[i]);
buf.append(CoreConstants.LINE_SEPARATOR);
}
return buf.toString();
return;
} else {
return CallerData.CALLER_DATA_NA;
buf.append(CallerData.CALLER_DATA_NA);
}
}

Expand Down
Expand Up @@ -23,15 +23,18 @@
*/
public class ClassNameOnlyAbbreviator implements Abbreviator {

public String abbreviate(String fqClassName) {
public void abbreviate(String fqClassName, StringBuilder out) {
String result;
// we ignore the fact that the separator character can also be a dollar
// If the inner class is org.good.AClass#Inner, returning
// AClass#Inner seems most appropriate
int lastIndex = fqClassName.lastIndexOf(CoreConstants.DOT);
if (lastIndex != -1) {
return fqClassName.substring(lastIndex + 1, fqClassName.length());
result = fqClassName.substring(lastIndex + 1, fqClassName.length());
} else {
return fqClassName;
result = fqClassName;
}

out.append(result);
}
}
Expand Up @@ -25,8 +25,9 @@ public class ContextNameConverter extends ClassicConverter {
/**
* Return the name of the logger context's name.
*/
public String convert(ILoggingEvent event) {
return event.getLoggerContextVO().getName();
@Override
public void gcfConvert(ILoggingEvent event, StringBuilder out) {
out.append(event.getLoggerContextVO().getName());
}

}
Expand Up @@ -56,8 +56,8 @@ public void start() {
}
}

public String convert(ILoggingEvent le) {
public void gcfConvert(ILoggingEvent le, StringBuilder out) {
long timestamp = le.getTimeStamp();
return cachingDateFormatter.format(timestamp);
out.append(cachingDateFormatter.format(timestamp));
}
}
Expand Up @@ -18,12 +18,13 @@

public class FileOfCallerConverter extends ClassicConverter {

public String convert(ILoggingEvent le) {
@Override
public void gcfConvert(ILoggingEvent le, StringBuilder out) {
StackTraceElement[] cda = le.getCallerData();
if (cda != null && cda.length > 0) {
return cda[0].getFileName();
out.append(cda[0].getFileName());
} else {
return CallerData.NA;
out.append(CallerData.NA);
}
}

Expand Down
Expand Up @@ -22,8 +22,9 @@
*/
public class LevelConverter extends ClassicConverter {

public String convert(ILoggingEvent le) {
return le.getLevel().toString();
@Override
public void gcfConvert(ILoggingEvent le, StringBuilder o) {
o.append(le.getLevel().toString());
}

}
Expand Up @@ -18,12 +18,12 @@

public class LineOfCallerConverter extends ClassicConverter {

public String convert(ILoggingEvent le) {
public void gcfConvert(ILoggingEvent le, StringBuilder out) {
StackTraceElement[] cda = le.getCallerData();
if (cda != null && cda.length > 0) {
return Integer.toString(cda[0].getLineNumber());
out.append(Integer.toString(cda[0].getLineNumber()));
} else {
return CallerData.NA;
out.append(CallerData.NA);
}
}

Expand Down
Expand Up @@ -18,8 +18,9 @@

public class LineSeparatorConverter extends ClassicConverter {

public String convert(ILoggingEvent event) {
return CoreConstants.LINE_SEPARATOR;
@Override
public void gcfConvert(ILoggingEvent event, StringBuilder out) {
out.append(CoreConstants.LINE_SEPARATOR);
}

}
Expand Up @@ -30,7 +30,7 @@ public class LocalSequenceNumberConverter extends ClassicConverter {
AtomicLong sequenceNumber = new AtomicLong(System.currentTimeMillis());

@Override
public String convert(ILoggingEvent event) {
return Long.toString(sequenceNumber.getAndIncrement());
public void gcfConvert(ILoggingEvent event, StringBuilder out) {
out.append(Long.toString(sequenceNumber.getAndIncrement()));
}
}
Expand Up @@ -13,11 +13,11 @@
*/
package ch.qos.logback.classic.pattern;

import ch.qos.logback.classic.spi.ILoggingEvent;
import static ch.qos.logback.core.util.OptionHelper.extractDefaultReplacement;

import java.util.Map;

import static ch.qos.logback.core.util.OptionHelper.extractDefaultReplacement;
import ch.qos.logback.classic.spi.ILoggingEvent;

public class MDCConverter extends ClassicConverter {

Expand All @@ -41,41 +41,42 @@ public void stop() {
}

@Override
public String convert(ILoggingEvent event) {
public void gcfConvert(ILoggingEvent event, StringBuilder out) {
Map<String, String> mdcPropertyMap = event.getMDCPropertyMap();

if (mdcPropertyMap == null) {
return defaultValue;
out.append(defaultValue);
return;
}

if (key == null) {
return outputMDCForAllKeys(mdcPropertyMap);
outputMDCForAllKeys(mdcPropertyMap, out);
return;
} else {

String value = event.getMDCPropertyMap().get(key);
if (value != null) {
return value;
out.append(value);
} else {
return defaultValue;
out.append(defaultValue);
}
}
}

/**
* if no key is specified, return all the values present in the MDC, in the format "k1=v1, k2=v2, ..."
*/
private String outputMDCForAllKeys(Map<String, String> mdcPropertyMap) {
StringBuilder buf = new StringBuilder();
private String outputMDCForAllKeys(Map<String, String> mdcPropertyMap, StringBuilder out) {
boolean first = true;
for (Map.Entry<String, String> entry : mdcPropertyMap.entrySet()) {
if (first) {
first = false;
} else {
buf.append(", ");
out.append(", ");
}
// format: key0=value0, key1=value1
buf.append(entry.getKey()).append('=').append(entry.getValue());
out.append(entry.getKey()).append('=').append(entry.getValue());
}
return buf.toString();
return out.toString();
}
}
Expand Up @@ -26,12 +26,12 @@ public class MarkerConverter extends ClassicConverter {

private static String EMPTY = "";

public String convert(ILoggingEvent le) {
public void gcfConvert(ILoggingEvent le, StringBuilder out) {
Marker marker = le.getMarker();
if (marker == null) {
return EMPTY;
out.append(EMPTY);
} else {
return marker.toString();
out.append(marker.toString());
}
}

Expand Down
Expand Up @@ -22,8 +22,9 @@
*/
public class MessageConverter extends ClassicConverter {

public String convert(ILoggingEvent event) {
return event.getFormattedMessage();
@Override
public void gcfConvert(ILoggingEvent event, StringBuilder out) {
out.append(event.getFormattedMessage());
}

}
Expand Up @@ -18,12 +18,13 @@

public class MethodOfCallerConverter extends ClassicConverter {

public String convert(ILoggingEvent le) {
@Override
public void gcfConvert(ILoggingEvent le, StringBuilder out) {
StackTraceElement[] cda = le.getCallerData();
if (cda != null && cda.length > 0) {
return cda[0].getMethodName();
out.append(cda[0].getMethodName());
} else {
return CallerData.NA;
out.append( CallerData.NA);
}
}

Expand Down
Expand Up @@ -44,13 +44,14 @@ public void start() {
}
}

public String convert(ILoggingEvent event) {
@Override
public void gcfConvert(ILoggingEvent event,StringBuilder out) {
String fqn = getFullyQualifiedName(event);

if (abbreviator == null) {
return fqn;
out.append(fqn);
} else {
return abbreviator.abbreviate(fqn);
abbreviator.abbreviate(fqn, out);
}
}
}
Expand Up @@ -34,8 +34,9 @@
*/
public class NopThrowableInformationConverter extends ThrowableHandlingConverter {

public String convert(ILoggingEvent event) {
return CoreConstants.EMPTY_STRING;
@Override
public void gcfConvert(ILoggingEvent event, StringBuilder sb) {
// nothing to do
}

}

0 comments on commit 387c7cc

Please sign in to comment.