Class XMLDecoder

java.lang.Object
org.apache.log4j.xml.XMLDecoder
All Implemented Interfaces:
Decoder

public class XMLDecoder extends Object implements Decoder
Decodes Logging Events in XML formated into elements that are used by Chainsaw.

This decoder can process a collection of log4j:event nodes ONLY (no XML declaration nor eventSet node)

NOTE: Only a single LoggingEvent is returned from the decode method even though the DTD supports multiple events nested in an eventSet.

NOTE: This class has been created on the assumption that all XML log files are encoded in UTF-8. There is no current support for any other encoding format at this time.

Author:
Scott Deboy (sdeboy@apache.org), Paul Smith (psmith@apache.org)
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create new instance.
    Create new instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.log4j.spi.LoggingEvent
    decode(String data)
    Converts the string data into an XML Document, and then soaks out the relevant bits to form a new LoggingEvent instance which can be used by any Log4j element locally.
    Vector<org.apache.log4j.spi.LoggingEvent>
    decode(URL url)
    Decodes a File into a Vector of LoggingEvents.
    Vector<org.apache.log4j.spi.LoggingEvent>
    decodeEvents(String document)
    Decodes a String representing a number of events into a Vector of LoggingEvents.
    void
    Sets an additionalProperty map, where each Key/Value pair is automatically added to each LoggingEvent as it is decoded.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • XMLDecoder

      public XMLDecoder(Component o)
      Create new instance.
      Parameters:
      o - owner
    • XMLDecoder

      public XMLDecoder()
      Create new instance.
  • Method Details

    • setAdditionalProperties

      public void setAdditionalProperties(Map properties)
      Sets an additionalProperty map, where each Key/Value pair is automatically added to each LoggingEvent as it is decoded.

      This is useful, say, to include the source file name of the Logging events

      Specified by:
      setAdditionalProperties in interface Decoder
      Parameters:
      properties - additional properties
    • decode

      public Vector<org.apache.log4j.spi.LoggingEvent> decode(URL url) throws IOException
      Decodes a File into a Vector of LoggingEvents.
      Specified by:
      decode in interface Decoder
      Parameters:
      url - the url of a file containing events to decode
      Returns:
      Vector of LoggingEvents
      Throws:
      IOException - if IO error during processing.
    • decodeEvents

      public Vector<org.apache.log4j.spi.LoggingEvent> decodeEvents(String document)
      Decodes a String representing a number of events into a Vector of LoggingEvents.
      Specified by:
      decodeEvents in interface Decoder
      Parameters:
      document - to decode events from
      Returns:
      Vector of LoggingEvents
    • decode

      public org.apache.log4j.spi.LoggingEvent decode(String data)
      Converts the string data into an XML Document, and then soaks out the relevant bits to form a new LoggingEvent instance which can be used by any Log4j element locally.
      Specified by:
      decode in interface Decoder
      Parameters:
      data - XML fragment
      Returns:
      a single LoggingEvent or null