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.fieldindicates 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. subformatindicates 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 SimpleDateFormatto 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 messageThe 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
Nested Classes Modifier and Type Class Description protected static classPatternFormatter.PatternRun
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringEOLprivate java.util.Datem_dateprivate PatternFormatter.PatternRun[]m_formatSpecificationprivate java.text.SimpleDateFormatm_simpleDateFormatprotected static intMAX_TYPEThe maximum value used for TYPEs.private static java.lang.StringSPACE_1private static java.lang.StringSPACE_16private static java.lang.StringSPACE_2private static java.lang.StringSPACE_4private static java.lang.StringSPACE_8private static intTYPE_CATEGORYprivate static java.lang.StringTYPE_CATEGORY_STRprivate static intTYPE_CONTEXTprivate static java.lang.StringTYPE_CONTEXT_STRprivate static intTYPE_MESSAGEprivate static java.lang.StringTYPE_MESSAGE_STRprivate static intTYPE_PRIORITYprivate static java.lang.StringTYPE_PRIORITY_STRprivate static intTYPE_RELATIVE_TIMEprivate static java.lang.StringTYPE_RELATIVE_TIME_STRprivate static intTYPE_TEXTprivate static intTYPE_THREADprivate static java.lang.StringTYPE_THREAD_STRprivate static intTYPE_THROWABLEprivate static java.lang.StringTYPE_THROWABLE_STRprivate static intTYPE_TIMEprivate static java.lang.StringTYPE_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 intaddPatternRun(java.util.Stack stack, char[] pattern, int index)Extract and build a pattern from input string.private intaddTextRun(java.util.Stack stack, char[] pattern, int index)Extract and build a text run from input string.private voidappend(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 voidappendWhiteSpace(java.lang.StringBuffer sb, int length)Append a certain number of whitespace characters to a StringBuffer.java.lang.Stringformat(LogEvent event)Format the event according to the pattern.protected java.lang.StringformatPatternRun(LogEvent event, PatternFormatter.PatternRun run)Formats a single pattern run (can be extended in subclasses).protected java.lang.StringgetCategory(java.lang.String category, java.lang.String format)Utility method to format category.protected java.lang.StringgetContextMap(ContextMap map, java.lang.String format)Utility method to format context map.protected java.lang.StringgetMessage(java.lang.String message, java.lang.String format)Utility method to format message.protected java.lang.StringgetPriority(Priority priority, java.lang.String format)Get formatted priority string.protected java.lang.StringgetRTime(long time, java.lang.String format)Utility method to format relative time.protected java.lang.StringgetStackTrace(java.lang.Throwable throwable, java.lang.String format)Utility method to format stack trace.protected java.lang.StringgetThread(java.lang.String format)Get formatted thread string.protected java.lang.StringgetTime(long time, java.lang.String format)Utility method to format time.protected intgetTypeIdFor(java.lang.String type)Retrieve the type-id for a particular string.protected voidparse(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
-
-