Class PatternFormatter

  • All Implemented Interfaces:
    Formatter
    Direct Known Subclasses:
    ExtendedPatternFormatter

    public class PatternFormatter
    extends java.lang.Object
    implements Formatter
    This formater formats the LogEvents according to a input pattern string.

    The format of each pattern element can be %[+|-][#[.#]]{field:subformat}.

    • The +|- indicates left or right justify.

    • The #.# indicates the minimum and maximum size of output. You may omit the values and the field will be formatted without size restriction.
      You may specify #, or #. to only define the minimum size.
      You may specify .# to only define the maximum size.

    • field indicates which field is to be output and must be one of properties of LogEvent. The following fields are currently supported:

      category Category value of the logging event.
      context Context value of the logging event.
      message Message value of the logging event.
      time Time value of the logging event.
      rtime Relative time value of the logging event.
      throwable Throwable value of the logging event.
      priority Priority value of the logging event.
      thread Name of the thread which logged the event.

    • subformat indicates a particular subformat to use on the specified field, and is currently only supported by:

      context Specifies the context map parameter name.
      time Specifies the pattern to be pass to SimpleDateFormat to format the time.

    A simple example of a typical PatternFormatter format would be:

    
       %{time} %5.5{priority}[%-10.10{category}]: %{message}
     

    This would produce a line like:

    
       1000928827905 DEBUG [     junit]: Sample message
     

    The format string specifies that the logger should first print the time value of the log event without size restriction, then the priority of the log event with a minimum and maximum size of 5, then the category of the log event right justified with a minimum and maximum size of 10, followed by the message of the log event without any size restriction.

    Version:
    $Id: PatternFormatter.java 30977 2004-07-30 03:57:54 -0500 (Fri, 30 Jul 2004) niclas $
    • Constructor Summary

      Constructors 
      Constructor Description
      PatternFormatter​(java.lang.String pattern)
      Creation of a new patter formatter baseed on a supplied pattern.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private int addPatternRun​(java.util.Stack stack, char[] pattern, int index)
      Extract and build a pattern from input string.
      private int addTextRun​(java.util.Stack stack, char[] pattern, int index)
      Extract and build a text run from input string.
      private void append​(java.lang.StringBuffer sb, int minSize, int maxSize, boolean rightJustify, java.lang.String output)
      Utility to append a string to buffer given certain constraints.
      private void appendWhiteSpace​(java.lang.StringBuffer sb, int length)
      Append a certain number of whitespace characters to a StringBuffer.
      java.lang.String format​(LogEvent event)
      Format the event according to the pattern.
      protected java.lang.String formatPatternRun​(LogEvent event, PatternFormatter.PatternRun run)
      Formats a single pattern run (can be extended in subclasses).
      protected java.lang.String getCategory​(java.lang.String category, java.lang.String format)
      Utility method to format category.
      protected java.lang.String getContextMap​(ContextMap map, java.lang.String format)
      Utility method to format context map.
      protected java.lang.String getMessage​(java.lang.String message, java.lang.String format)
      Utility method to format message.
      protected java.lang.String getPriority​(Priority priority, java.lang.String format)
      Get formatted priority string.
      protected java.lang.String getRTime​(long time, java.lang.String format)
      Utility method to format relative time.
      protected java.lang.String getStackTrace​(java.lang.Throwable throwable, java.lang.String format)
      Utility method to format stack trace.
      protected java.lang.String getThread​(java.lang.String format)
      Get formatted thread string.
      protected java.lang.String getTime​(long time, java.lang.String format)
      Utility method to format time.
      protected int getTypeIdFor​(java.lang.String type)
      Retrieve the type-id for a particular string.
      protected void parse​(java.lang.String patternString)
      Parse the input pattern and build internal data structures.
      • Methods inherited from class java.lang.Object

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

      • PatternFormatter

        public PatternFormatter​(java.lang.String pattern)
        Creation of a new patter formatter baseed on a supplied pattern.
        Parameters:
        pattern - the patter
    • Method Detail

      • addPatternRun

        private int addPatternRun​(java.util.Stack stack,
                                  char[] pattern,
                                  int index)
        Extract and build a pattern from input string.
        Parameters:
        stack - the stack on which to place patterns
        pattern - the input string
        index - the start of pattern run
        Returns:
        the number of characters in pattern run
      • addTextRun

        private int addTextRun​(java.util.Stack stack,
                               char[] pattern,
                               int index)
        Extract and build a text run from input string. It does special handling of '\n' and '\t' replaceing them with newline and tab.
        Parameters:
        stack - the stack on which to place runs
        pattern - the input string
        index - the start of the text run
        Returns:
        the number of characters in run
      • append

        private void append​(java.lang.StringBuffer sb,
                            int minSize,
                            int maxSize,
                            boolean rightJustify,
                            java.lang.String output)
        Utility to append a string to buffer given certain constraints.
        Parameters:
        sb - the StringBuffer
        minSize - the minimum size of output (0 to ignore)
        maxSize - the maximum size of output (0 to ignore)
        rightJustify - true if the string is to be right justified in it's box.
        output - the input string
      • appendWhiteSpace

        private void appendWhiteSpace​(java.lang.StringBuffer sb,
                                      int length)
        Append a certain number of whitespace characters to a StringBuffer.
        Parameters:
        sb - the StringBuffer
        length - the number of spaces to append
      • format

        public java.lang.String format​(LogEvent event)
        Format the event according to the pattern.
        Specified by:
        format in interface Formatter
        Parameters:
        event - the event
        Returns:
        the formatted output
      • formatPatternRun

        protected java.lang.String formatPatternRun​(LogEvent event,
                                                    PatternFormatter.PatternRun run)
        Formats a single pattern run (can be extended in subclasses).
        Parameters:
        run - the pattern run to format.
        Returns:
        the formatted result.
      • getCategory

        protected java.lang.String getCategory​(java.lang.String category,
                                               java.lang.String format)
        Utility method to format category.
        Parameters:
        category - the category string
        format - ancilliary format parameter - allowed to be null
        Returns:
        the formatted string
      • getPriority

        protected java.lang.String getPriority​(Priority priority,
                                               java.lang.String format)
        Get formatted priority string.
      • getThread

        protected java.lang.String getThread​(java.lang.String format)
        Get formatted thread string.
      • getContextMap

        protected java.lang.String getContextMap​(ContextMap map,
                                                 java.lang.String format)
        Utility method to format context map.
        Parameters:
        map - the context map
        format - ancilliary format parameter - allowed to be null
        Returns:
        the formatted string
      • getMessage

        protected java.lang.String getMessage​(java.lang.String message,
                                              java.lang.String format)
        Utility method to format message.
        Parameters:
        message - the message string
        format - ancilliary format parameter - allowed to be null
        Returns:
        the formatted string
      • getStackTrace

        protected java.lang.String getStackTrace​(java.lang.Throwable throwable,
                                                 java.lang.String format)
        Utility method to format stack trace.
        Parameters:
        throwable - the throwable instance
        format - ancilliary format parameter - allowed to be null
        Returns:
        the formatted string
      • getRTime

        protected java.lang.String getRTime​(long time,
                                            java.lang.String format)
        Utility method to format relative time.
        Parameters:
        time - the time
        format - ancilliary format parameter - allowed to be null
        Returns:
        the formatted string
      • getTime

        protected java.lang.String getTime​(long time,
                                           java.lang.String format)
        Utility method to format time.
        Parameters:
        time - the time
        format - ancilliary format parameter - allowed to be null
        Returns:
        the formatted string
      • getTypeIdFor

        protected int getTypeIdFor​(java.lang.String type)
        Retrieve the type-id for a particular string.
        Parameters:
        type - the string
        Returns:
        the type-id
      • parse

        protected final void parse​(java.lang.String patternString)
        Parse the input pattern and build internal data structures.
        Parameters:
        patternString - the pattern