Class PatternFormatter
- java.lang.Object
-
- org.apache.log.format.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:
- CVS $Revision: 1.42 $ $Date: 2004/02/28 11:31:24 $
- Author:
- Avalon Development Team, Peter Donald, Sylvain Wallez, Leif Mortenson
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
PatternFormatter.PatternRun
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
EOL
private java.util.Date
m_date
private PatternFormatter.PatternRun[]
m_formatSpecification
private java.text.SimpleDateFormat
m_simpleDateFormat
protected static int
MAX_TYPE
The maximum value used for TYPEs.private static java.lang.String
SPACE_1
private static java.lang.String
SPACE_16
private static java.lang.String
SPACE_2
private static java.lang.String
SPACE_4
private static java.lang.String
SPACE_8
private static int
TYPE_CATEGORY
private static java.lang.String
TYPE_CATEGORY_STR
private static int
TYPE_CONTEXT
private static java.lang.String
TYPE_CONTEXT_STR
private static int
TYPE_MESSAGE
private static java.lang.String
TYPE_MESSAGE_STR
private static int
TYPE_PRIORITY
private static java.lang.String
TYPE_PRIORITY_STR
private static int
TYPE_RELATIVE_TIME
private static java.lang.String
TYPE_RELATIVE_TIME_STR
private static int
TYPE_TEXT
private static int
TYPE_THREAD
private static java.lang.String
TYPE_THREAD_STR
private static int
TYPE_THROWABLE
private static java.lang.String
TYPE_THROWABLE_STR
private static int
TYPE_TIME
private static java.lang.String
TYPE_TIME_STR
-
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.
-
-
-
Field Detail
-
TYPE_TEXT
private static final int TYPE_TEXT
- See Also:
- Constant Field Values
-
TYPE_CATEGORY
private static final int TYPE_CATEGORY
- See Also:
- Constant Field Values
-
TYPE_CONTEXT
private static final int TYPE_CONTEXT
- See Also:
- Constant Field Values
-
TYPE_MESSAGE
private static final int TYPE_MESSAGE
- See Also:
- Constant Field Values
-
TYPE_TIME
private static final int TYPE_TIME
- See Also:
- Constant Field Values
-
TYPE_RELATIVE_TIME
private static final int TYPE_RELATIVE_TIME
- See Also:
- Constant Field Values
-
TYPE_THROWABLE
private static final int TYPE_THROWABLE
- See Also:
- Constant Field Values
-
TYPE_PRIORITY
private static final int TYPE_PRIORITY
- See Also:
- Constant Field Values
-
TYPE_THREAD
private static final int TYPE_THREAD
- See Also:
- Constant Field Values
-
MAX_TYPE
protected static final int MAX_TYPE
The maximum value used for TYPEs. Subclasses can define their own TYPEs starting atMAX_TYPE + 1
.- See Also:
- Constant Field Values
-
TYPE_CATEGORY_STR
private static final java.lang.String TYPE_CATEGORY_STR
- See Also:
- Constant Field Values
-
TYPE_CONTEXT_STR
private static final java.lang.String TYPE_CONTEXT_STR
- See Also:
- Constant Field Values
-
TYPE_MESSAGE_STR
private static final java.lang.String TYPE_MESSAGE_STR
- See Also:
- Constant Field Values
-
TYPE_TIME_STR
private static final java.lang.String TYPE_TIME_STR
- See Also:
- Constant Field Values
-
TYPE_RELATIVE_TIME_STR
private static final java.lang.String TYPE_RELATIVE_TIME_STR
- See Also:
- Constant Field Values
-
TYPE_THROWABLE_STR
private static final java.lang.String TYPE_THROWABLE_STR
- See Also:
- Constant Field Values
-
TYPE_PRIORITY_STR
private static final java.lang.String TYPE_PRIORITY_STR
- See Also:
- Constant Field Values
-
TYPE_THREAD_STR
private static final java.lang.String TYPE_THREAD_STR
- See Also:
- Constant Field Values
-
SPACE_16
private static final java.lang.String SPACE_16
- See Also:
- Constant Field Values
-
SPACE_8
private static final java.lang.String SPACE_8
- See Also:
- Constant Field Values
-
SPACE_4
private static final java.lang.String SPACE_4
- See Also:
- Constant Field Values
-
SPACE_2
private static final java.lang.String SPACE_2
- See Also:
- Constant Field Values
-
SPACE_1
private static final java.lang.String SPACE_1
- See Also:
- Constant Field Values
-
EOL
private static final java.lang.String EOL
-
m_formatSpecification
private PatternFormatter.PatternRun[] m_formatSpecification
-
m_simpleDateFormat
private java.text.SimpleDateFormat m_simpleDateFormat
-
m_date
private final java.util.Date m_date
-
-
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 patternspattern
- the input stringindex
- 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 runspattern
- the input stringindex
- 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 StringBufferminSize
- 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 StringBufferlength
- the number of spaces to append
-
format
public java.lang.String format(LogEvent event)
Format the event according to the pattern.
-
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 stringformat
- 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 mapformat
- 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 stringformat
- 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 instanceformat
- 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 timeformat
- 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 timeformat
- 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
-
-