/** * This method computes whether a chain of converters handles exceptions or * not. * * @param head * The first element of the chain * @return true if can handle throwables contained in logging events */ public boolean chainHandlesThrowable(Converter<ILoggingEvent> head) { Converter<ILoggingEvent> c = head; while (c != null) { if (c instanceof ThrowableHandlingConverter) { return true; } c = c.getNext(); } return false; } }
public String doLayout(ILoggingEvent event) { StringBuilder buf = new StringBuilder(); startNewTableIfLimitReached(buf); boolean odd = true; if (((counter++) & 1) == 0) { odd = false; } String level = event.getLevel().toString().toLowerCase(); buf.append(LINE_SEPARATOR); buf.append("<tr class=\""); buf.append(level); if (odd) { buf.append(" odd\">"); } else { buf.append(" even\">"); } buf.append(LINE_SEPARATOR); Converter<ILoggingEvent> c = head; while (c != null) { appendEventToBuffer(buf, c, event); c = c.getNext(); } buf.append("</tr>"); buf.append(LINE_SEPARATOR); if (event.getThrowableProxy() != null) { throwableRenderer.render(buf, event); } return buf.toString(); }
break; c = c.getNext();
public IntegerTokenConverter getIntegerTokenConverter() { Converter p = headTokenConverter; while (p != null) { if (p instanceof IntegerTokenConverter) { return (IntegerTokenConverter) p; } p = p.getNext(); } return null; }
public static <E> Converter<E> findTail(Converter<E> head) { Converter<E> p = head; while (p != null) { Converter<E> next = p.getNext(); if (next == null) { break; } else { p = next; } } return p; }
/** * This method computes whether a chain of converters handles exceptions or * not. * * @param head * The first element of the chain * @return true if can handle throwables contained in logging events */ public boolean chainHandlesThrowable(Converter head) { Converter c = head; while (c != null) { if (c instanceof ThrowableHandlingConverter) { return true; } c = c.getNext(); } return false; } }
protected String writeLoopOnConverters(E event) { StringBuilder buf = new StringBuilder(128); Converter<E> c = head; while (c != null) { c.write(buf, event); c = c.getNext(); } return buf.toString(); }
public String convert(Object o) { StringBuilder buf = new StringBuilder(); Converter<Object> p = headTokenConverter; while (p != null) { buf.append(p.convert(o)); p = p.getNext(); } return buf.toString(); }
public static <E> void setContextForConverters(Context context, Converter<E> head) { Converter<E> c = head; while (c != null) { if (c instanceof ContextAware) { ((ContextAware) c).setContext(context); } c = c.getNext(); } } }
public DateTokenConverter getPrimaryDateTokenConverter() { Converter p = headTokenConverter; while (p != null) { if (p instanceof DateTokenConverter) { DateTokenConverter dtc = (DateTokenConverter) p; // only primary converters should be returned as if(dtc.isPrimary()) return dtc; } p = p.getNext(); } return null; }
private void buildHeaderRowForTable(StringBuilder sbuf) { Converter c = head; String name; sbuf.append("<tr class=\"header\">"); sbuf.append(LINE_SEPARATOR); while (c != null) { name = computeConverterName(c); if (name == null) { c = c.getNext(); continue; } sbuf.append("<td class=\""); sbuf.append(computeConverterName(c)); sbuf.append("\">"); sbuf.append(computeConverterName(c)); sbuf.append("</td>"); sbuf.append(LINE_SEPARATOR); c = c.getNext(); } sbuf.append("</tr>"); sbuf.append(LINE_SEPARATOR); }
/** * Given date, convert this instance to a regular expression */ public String toRegex() { StringBuilder buf = new StringBuilder(); Converter<Object> p = headTokenConverter; while (p != null) { if (p instanceof LiteralConverter) { buf.append(p.convert(null)); } else if (p instanceof IntegerTokenConverter) { buf.append("\\d{1,2}"); } else if (p instanceof DateTokenConverter) { DateTokenConverter<Object> dtc = (DateTokenConverter<Object>) p; buf.append(dtc.toRegex()); } p = p.getNext(); } return buf.toString(); } }
/** * Given date, convert this instance to a regular expression. * * Used to compute sub-regex when the pattern has both %d and %i, and the * date is known. */ public String toRegexForFixedDate(Date date) { StringBuilder buf = new StringBuilder(); Converter<Object> p = headTokenConverter; while (p != null) { if (p instanceof LiteralConverter) { buf.append(p.convert(null)); } else if (p instanceof IntegerTokenConverter) { buf.append("(\\d{1,3})"); } else if (p instanceof DateTokenConverter) { buf.append(p.convert(date)); } p = p.getNext(); } return buf.toString(); }
public String convertMultipleArguments(Object... objectList) { StringBuilder buf = new StringBuilder(); Converter<Object> c = headTokenConverter; while (c != null) { if (c instanceof MonoTypedConverter) { MonoTypedConverter monoTyped = (MonoTypedConverter) c; for (Object o : objectList) { if (monoTyped.isApplicable(o)) { buf.append(c.convert(o)); } } } else { buf.append(c.convert(objectList)); } c = c.getNext(); } return buf.toString(); }
boolean computeParentCleaningFlag(FileNamePattern fileNamePattern) { DateTokenConverter dtc = fileNamePattern.getPrimaryDateTokenConverter(); // if the date pattern has a /, then we need parent cleaning if (dtc.getDatePattern().indexOf('/') != -1) { return true; } // if the literal string subsequent to the dtc contains a /, we also // need parent cleaning Converter<Object> p = fileNamePattern.headTokenConverter; // find the date converter while (p != null) { if (p instanceof DateTokenConverter) { break; } p = p.getNext(); } while (p != null) { if (p instanceof LiteralConverter) { String s = p.convert(null); if (s.indexOf('/') != -1) { return true; } } p = p.getNext(); } // no /, so we don't need parent cleaning return false; }
public String doLayout(ILoggingEvent event) { StringBuilder buf = new StringBuilder(); startNewTableIfLimitReached(buf); boolean odd = true; if (((counter++) & 1) == 0) { odd = false; } String level = event.getLevel().toString().toLowerCase(); buf.append(LINE_SEPARATOR); buf.append("<tr class=\""); buf.append(level); if (odd) { buf.append(" odd\">"); } else { buf.append(" even\">"); } buf.append(LINE_SEPARATOR); Converter<ILoggingEvent> c = head; while (c != null) { appendEventToBuffer(buf, c, event); c = c.getNext(); } buf.append("</tr>"); buf.append(LINE_SEPARATOR); if (event.getThrowableProxy() != null) { throwableRenderer.render(buf, event); } return buf.toString(); }
/** * Start converters in the chain of converters. * * @param head */ public static <E> void startConverters(Converter<E> head) { Converter<E> c = head; while (c != null) { // CompositeConverter is a subclass of DynamicConverter if (c instanceof CompositeConverter) { CompositeConverter<E> cc = (CompositeConverter<E>) c; Converter<E> childConverter = cc.childConverter; startConverters(childConverter); cc.start(); } else if (c instanceof DynamicConverter) { DynamicConverter<E> dc = (DynamicConverter<E>) c; dc.start(); } c = c.getNext(); } }
public IntegerTokenConverter getIntegerTokenConverter() { Converter<Object> p = headTokenConverter; while (p != null) { if (p instanceof IntegerTokenConverter) { return (IntegerTokenConverter) p; } p = p.getNext(); } return null; }
public String convert(Object o) { StringBuilder buf = new StringBuilder(); Converter<Object> p = headTokenConverter; while (p != null) { buf.append(p.convert(o)); p = p.getNext(); } return buf.toString(); }
protected void setContextForConverters(Converter<E> head) { Context context = getContext(); Converter c = head; while (c != null) { if (c instanceof ContextAware) { ((ContextAware) c).setContext(context); } c = c.getNext(); } }