Class ObjectFieldsAppendingMarker

java.lang.Object
net.logstash.logback.marker.LogstashMarker
net.logstash.logback.marker.ObjectFieldsAppendingMarker
All Implemented Interfaces:
Serializable, Iterable<org.slf4j.Marker>, StructuredArgument, org.slf4j.Marker

public class ObjectFieldsAppendingMarker extends LogstashMarker implements StructuredArgument
A Marker OR StructuredArgument that that "unwraps" the given object into the logstash event.

When writing to the JSON data (via ArgumentsJsonProvider or LogstashMarkersJsonProvider), the fields of the object are written inline into the JSON event similar to how the JsonUnwrapped annotation works.

When writing to a String (when used as a StructuredArgument to the event's formatted message), StructuredArguments.toString(Object) is used to convert the object to a string.

For example, if the message is "mymessage {}", and the object argument is:

 {
     name1 : "value1",
     name2 : 5,
     name3 : [1, 2, 3],
     name4 : {
         name5 : 6
     }
 }
 

Then the message, name1, name2, name3, name4 fields will be added to the json for the logstash event.

For example:

 {
     "message" : "mymessage objectsToStringValue",
     "name1" : "value1",
     "name2" : 5,
     "name3" : [1, 2, 3],
     "name4" : { "name5" : 6 }
 }
 
Note that if the object cannot be unwrapped, then nothing will be written.
See Also:
  • Field Details

  • Constructor Details

    • ObjectFieldsAppendingMarker

      public ObjectFieldsAppendingMarker(Object object)
  • Method Details

    • writeTo

      public void writeTo(JsonGenerator generator) throws IOException
      Description copied from class: LogstashMarker
      Writes the data associated with this marker to the given JsonGenerator.
      Specified by:
      writeTo in interface StructuredArgument
      Specified by:
      writeTo in class LogstashMarker
      Parameters:
      generator - the generator to which to write the output of this marker.
      Throws:
      IOException - if there was an error writing to the generator
    • toStringSelf

      public String toStringSelf()
      Description copied from class: LogstashMarker
      Returns a string representation of this object, without including any references.

      Subclasses should override LogstashMarker.toStringSelf() instead of LogstashMarker.toString(), since LogstashMarker.toString() will automatically include the LogstashMarker.toStringSelf() and references.

      Overrides:
      toStringSelf in class LogstashMarker
      Returns:
      a string representation of this object, without including any references.
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface org.slf4j.Marker
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface org.slf4j.Marker
    • getName

      public String getName()
      Specified by:
      getName in interface org.slf4j.Marker
    • hasReferences

      public boolean hasReferences()
      Specified by:
      hasReferences in interface org.slf4j.Marker
    • hasChildren

      @Deprecated public boolean hasChildren()
      Deprecated.
      Specified by:
      hasChildren in interface org.slf4j.Marker
    • iterator

      public Iterator<org.slf4j.Marker> iterator()
      Specified by:
      iterator in interface org.slf4j.Marker
    • remove

      public boolean remove(org.slf4j.Marker referenceToRemove)
      Specified by:
      remove in interface org.slf4j.Marker
    • contains

      public boolean contains(org.slf4j.Marker other)
      Specified by:
      contains in interface org.slf4j.Marker
    • contains

      public boolean contains(String name)
      Specified by:
      contains in interface org.slf4j.Marker