org.apache.log.format

Class PatternFormatter

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}.

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 $

Author: Avalon Development Team Peter Donald Sylvain Wallez Leif Mortenson

Nested Class Summary
protected static classPatternFormatter.PatternRun
Field Summary
static StringEOL
Datem_date
PatternFormatter.PatternRun[]m_formatSpecification
SimpleDateFormatm_simpleDateFormat
protected static intMAX_TYPE
The maximum value used for TYPEs.
static StringSPACE_1
static StringSPACE_16
static StringSPACE_2
static StringSPACE_4
static StringSPACE_8
static intTYPE_CATEGORY
static StringTYPE_CATEGORY_STR
static intTYPE_CONTEXT
static StringTYPE_CONTEXT_STR
static intTYPE_MESSAGE
static StringTYPE_MESSAGE_STR
static intTYPE_PRIORITY
static StringTYPE_PRIORITY_STR
static intTYPE_RELATIVE_TIME
static StringTYPE_RELATIVE_TIME_STR
static intTYPE_TEXT
static intTYPE_THREAD
static StringTYPE_THREAD_STR
static intTYPE_THROWABLE
static StringTYPE_THROWABLE_STR
static intTYPE_TIME
static StringTYPE_TIME_STR
Constructor Summary
PatternFormatter(String pattern)
Creation of a new patter formatter baseed on a supplied pattern.
Method Summary
intaddPatternRun(Stack stack, char[] pattern, int index)
Extract and build a pattern from input string.
intaddTextRun(Stack stack, char[] pattern, int index)
Extract and build a text run from input string.
voidappend(StringBuffer sb, int minSize, int maxSize, boolean rightJustify, String output)
Utility to append a string to buffer given certain constraints.
voidappendWhiteSpace(StringBuffer sb, int length)
Append a certain number of whitespace characters to a StringBuffer.
Stringformat(LogEvent event)
Format the event according to the pattern.
protected StringformatPatternRun(LogEvent event, PatternFormatter.PatternRun run)
Formats a single pattern run (can be extended in subclasses).
protected StringgetCategory(String category, String format)
Utility method to format category.
protected StringgetContextMap(ContextMap map, String format)
Utility method to format context map.
protected StringgetMessage(String message, String format)
Utility method to format message.
protected StringgetPriority(Priority priority, String format)
Get formatted priority string.
protected StringgetRTime(long time, String format)
Utility method to format relative time.
protected StringgetStackTrace(Throwable throwable, String format)
Utility method to format stack trace.
protected StringgetThread(String format)
Get formatted thread string.
protected StringgetTime(long time, String format)
Utility method to format time.
protected intgetTypeIdFor(String type)
Retrieve the type-id for a particular string.
protected voidparse(String patternString)
Parse the input pattern and build internal data structures.

Field Detail

EOL

private static final String EOL

m_date

private final Date m_date

m_formatSpecification

private PatternFormatter.PatternRun[] m_formatSpecification

m_simpleDateFormat

private SimpleDateFormat m_simpleDateFormat

MAX_TYPE

protected static final int MAX_TYPE
The maximum value used for TYPEs. Subclasses can define their own TYPEs starting at MAX_TYPE + 1.

SPACE_1

private static final String SPACE_1

SPACE_16

private static final String SPACE_16

SPACE_2

private static final String SPACE_2

SPACE_4

private static final String SPACE_4

SPACE_8

private static final String SPACE_8

TYPE_CATEGORY

private static final int TYPE_CATEGORY

TYPE_CATEGORY_STR

private static final String TYPE_CATEGORY_STR

TYPE_CONTEXT

private static final int TYPE_CONTEXT

TYPE_CONTEXT_STR

private static final String TYPE_CONTEXT_STR

TYPE_MESSAGE

private static final int TYPE_MESSAGE

TYPE_MESSAGE_STR

private static final String TYPE_MESSAGE_STR

TYPE_PRIORITY

private static final int TYPE_PRIORITY

TYPE_PRIORITY_STR

private static final String TYPE_PRIORITY_STR

TYPE_RELATIVE_TIME

private static final int TYPE_RELATIVE_TIME

TYPE_RELATIVE_TIME_STR

private static final String TYPE_RELATIVE_TIME_STR

TYPE_TEXT

private static final int TYPE_TEXT

TYPE_THREAD

private static final int TYPE_THREAD

TYPE_THREAD_STR

private static final String TYPE_THREAD_STR

TYPE_THROWABLE

private static final int TYPE_THROWABLE

TYPE_THROWABLE_STR

private static final String TYPE_THROWABLE_STR

TYPE_TIME

private static final int TYPE_TIME

TYPE_TIME_STR

private static final String TYPE_TIME_STR

Constructor Detail

PatternFormatter

public PatternFormatter(String pattern)
Creation of a new patter formatter baseed on a supplied pattern.

Parameters: pattern the patter

Method Detail

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.

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

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

getPriority

protected String getPriority(Priority priority, String format)
Get formatted priority 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

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

getThread

protected String getThread(String format)
Get formatted thread 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