Class PatternFormatter

java.lang.Object
org.apache.log.format.PatternFormatter
All Implemented Interfaces:
Formatter
Direct Known Subclasses:
ExtendedPatternFormatter

public class PatternFormatter extends 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:
CVS $Revision: 1.42 $ $Date: 2004/02/28 11:31:24 $
Author:
Avalon Development Team, Peter Donald, Sylvain Wallez, Leif Mortenson
  • Field Details

  • Constructor Details

    • PatternFormatter

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

    • addPatternRun

      private int addPatternRun(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(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(StringBuffer sb, int minSize, int maxSize, boolean rightJustify, 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(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 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 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 String getCategory(String category, 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 String getPriority(Priority priority, String format)
      Get formatted priority string.
    • getThread

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

      protected String getContextMap(ContextMap map, 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 String getMessage(String message, 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 String getStackTrace(Throwable throwable, 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 String getRTime(long time, 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 String getTime(long time, 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(String type)
      Retrieve the type-id for a particular string.
      Parameters:
      type - the string
      Returns:
      the type-id
    • parse

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