private static org.apache.logging.log4j.Marker convertMarker(final Marker original, final Collection<Marker> visited) { final org.apache.logging.log4j.Marker marker = MarkerManager.getMarker(original.getName()); if (original.hasReferences()) { final Iterator<Marker> it = original.iterator(); while (it.hasNext()) { final Marker next = it.next(); if (visited.contains(next)) { LOGGER.warn("Found a cycle in Marker [{}]. Cycle will be broken.", next.getName()); } else { visited.add(next); marker.addParents(convertMarker(next, visited)); } } } return marker; }
@Override public Iterator<Marker> iterator() { return marker.iterator(); }
private static Set<String> getMarkers(final ILoggingEvent eventObject) { final Marker marker = eventObject.getMarker(); if (marker == null) { return null; } final Set<String> markers = new TreeSet<>(); Iterator<?> i = marker.iterator(); while (i.hasNext()) { markers.add(i.next().toString()); } return markers; }
private static Marker getSubmarker(Marker marker, String name) { Preconditions.checkNotNull(marker); Preconditions.checkNotNull(name); for (Iterator<Marker> m = marker.iterator(); m.hasNext();) { Marker next = m.next(); if (name.equals(next.getName())) { return next; } } return null; } }
private List<String> convert(final Marker marker) { Objects.requireNonNull(marker); List<String> ret = new ArrayList<>(); ret.add(marker.getName()); Iterator<Marker> children = marker.iterator(); while (children.hasNext()) { ret.addAll(convert(children.next())); } return ret; }
public static String getMarkerName(Marker marker) { StringBuffer sb = new StringBuffer(); sb.append(marker.getName()); if (marker.hasReferences()) { // follow only first reference. Multiple references will be ignored. Marker reference = (Marker) marker.iterator().next(); sb.append("."); sb.append(getMarkerName(reference)); } return sb.toString(); }
private void getMarkersRecursively(Marker marker, ArrayComposer<JSONComposer<String>> ac) throws IOException { if (marker != null) { ac.add(marker.getName()); Iterator<Marker> it = marker.iterator(); while (it.hasNext()) { getMarkersRecursively(it.next(), ac); } } }
private List<String> resolveMarkerNames(final Marker marker) { if (marker != null) { final List<String> result = new ArrayList<String>(); result.add(marker.getName()); if (marker.hasReferences()) { for (final Iterator<Marker> iter = marker.iterator(); iter.hasNext();) { final Marker next = iter.next(); result.addAll(resolveMarkerNames(next)); } } return result; } return Collections.emptyList(); } }
private void writeLogstashMarkerIfNecessary(JsonGenerator generator, Marker marker) throws IOException { if (marker != null) { if (isLogstashMarker(marker)) { ((LogstashMarker) marker).writeTo(generator); } if (marker.hasReferences()) { for (Iterator<?> i = marker.iterator(); i.hasNext();) { Marker next = (Marker) i.next(); writeLogstashMarkerIfNecessary(generator, next); } } } }
private void writeContextForFilteredMarkerAndReferences(JsonGenerator generator, Marker marker) throws IOException { // filter MDCs for the current marker plus all its references @SuppressWarnings("rawtypes") Set<Class> filter = new HashSet<>(); if(marker instanceof DomainMarker) { filter.add(marker.getClass()); } Iterator<Marker> iterator = marker.iterator(); while(iterator.hasNext()) { Marker next = iterator.next(); if(next instanceof DomainMarker) { filter.add(next.getClass()); } } // write mdc context now for (DomainMdc<? extends DomainMarker> mdc : DomainMdc.getMdcs()) { // list of possible MDCs if(filter.contains(mdc.getType())) { // skip continue; } DomainMarker mdcMarker = mdc.get(); if(mdcMarker != null) { mdcMarker.writeTo(generator); } } }
static void printMarker(final Marker marker, final Appendable wr, final EscapeJsonStringAppendableWrapper wrapper) throws IOException { if (marker.hasReferences()) { wr.append('{'); wr.append('"'); wrapper.append(marker.getName()); wr.append("\":["); Iterator<Marker> it = marker.iterator(); if (it.hasNext()) { printMarker(it.next(), wr, wrapper); while (it.hasNext()) { wr.append(','); printMarker(it.next(), wr, wrapper); } } wr.append("]}"); } else { wr.append('"'); wrapper.append(marker.getName()); wr.append('"'); } }
private static org.apache.logging.log4j.Marker convertMarker(final Marker original, final Collection<Marker> visited) { final org.apache.logging.log4j.Marker marker = MarkerManager.getMarker(original.getName()); if (original.hasReferences()) { final Iterator<Marker> it = original.iterator(); while (it.hasNext()) { final Marker next = it.next(); if (visited.contains(next)) { LOGGER.warn("Found a cycle in Marker [{}]. Cycle will be broken.", next.getName()); } else { visited.add(next); marker.addParents(convertMarker(next, visited)); } } } return marker; }
public static Marker convertMarker(org.slf4j.Marker input) { Marker output = MarkerManager.getMarker(input.getName()); if (input.hasReferences()) { Iterator i = input.iterator(); while (i.hasNext()) { org.slf4j.Marker ref = (org.slf4j.Marker)i.next(); output.addParents(convertMarker(ref)); } } return output; }
@SuppressWarnings("deprecation") private boolean writeTagIfNecessary(JsonGenerator generator, boolean hasWrittenStart, final Marker marker) throws IOException { if (!marker.getName().equals(JsonMessageJsonProvider.JSON_MARKER_NAME) && !LogstashMarkersJsonProvider.isLogstashMarker(marker)) { if (!hasWrittenStart) { generator.writeArrayFieldStart(getFieldName()); hasWrittenStart = true; } generator.writeString(marker.getName()); } if (marker.hasReferences()) { for (Iterator<?> i = marker.iterator(); i.hasNext();) { Marker next = (Marker) i.next(); hasWrittenStart |= writeTagIfNecessary(generator, hasWrittenStart, next); } } return hasWrittenStart; }
private Marker initMarkerRecursive(org.slf4j.Marker origMarker, Map<String, Marker> markers) { if(origMarker == null) { return null; } String name = origMarker.getName(); if(markers.containsKey(name)) { return markers.get(name); } Marker newMarker = new Marker(name); markers.put(name, newMarker); if(origMarker.hasReferences()) { Iterator iter = origMarker.iterator(); while(iter.hasNext()) { org.slf4j.Marker current = (org.slf4j.Marker) iter.next(); newMarker.add(initMarkerRecursive(current, markers)); } } return newMarker; }
private Marker initMarkerRecursive(org.slf4j.Marker origMarker, Map<String, Marker> markers) { if(origMarker == null) { return null; } String name = origMarker.getName(); if(markers.containsKey(name)) { return markers.get(name); } Marker newMarker = new Marker(name); markers.put(name, newMarker); if(origMarker.hasReferences()) { Iterator iter = origMarker.iterator(); while(iter.hasNext()) { org.slf4j.Marker current = (org.slf4j.Marker) iter.next(); newMarker.add(initMarkerRecursive(current, markers)); } } return newMarker; } }
Iterator<Marker> iterator = marker.iterator(); while(iterator.hasNext()) { Marker next = iterator.next();
protected void writeMarker(JsonWriter.ObjectWriter<JsonWriter> writer, ILoggingEvent event) throws IOException { Marker marker = event.getMarker(); if (marker != null) { JsonWriter.ArrayWriter<JsonWriter.ObjectWriter<JsonWriter.ObjectWriter<JsonWriter>>> aw = writer.writeObject(fieldNames.getMarker(), isActive(fieldNames.getMarker())).writeArray(marker.getName(), true); Iterator<Marker> markers = marker.iterator(); while (markers.hasNext()) { String name = markers.next().getName(); aw.writeString(name, name != null && !name.isEmpty()); } aw.done().done(); } }
protected void writeMarker(JsonWriter.ObjectWriter<JsonWriter> writer, ILoggingEvent event) throws IOException { Marker marker = event.getMarker(); if (marker != null) { JsonWriter.ArrayWriter<JsonWriter.ObjectWriter<JsonWriter.ObjectWriter<JsonWriter>>> aw = writer.writeObject(fieldNames.getMarker(), isActive(fieldNames.getMarker())).writeArray(marker.getName(), true); Iterator<Marker> markers = marker.iterator(); while (markers.hasNext()) { String name = markers.next().getName(); aw.writeString(name, name != null && !name.isEmpty()); } aw.done().done(); } }