Class 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 Detail

      • XMLDecoder

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

        public XMLDecoder()
        Create new instance.
    • Method Detail

      • 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