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.
EOL
private static final String EOL
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
m_date
private final Date m_date
m_simpleDateFormat
private SimpleDateFormat m_simpleDateFormat
addPatternRun
private int addPatternRun(Stack stack,
pattern[] ,
int index)
Extract and build a pattern from input string.
stack
- the stack on which to place patternsindex
- the start of pattern run
- the number of characters in pattern run
addTextRun
private int addTextRun(Stack stack,
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.
stack
- the stack on which to place runsindex
- the start of the text run
- 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.
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(StringBuffer sb,
int length)
Append a certain number of whitespace characters to a StringBuffer.
sb
- the StringBufferlength
- the number of spaces to append
format
public String format(LogEvent event)
Format the event according to the pattern.
- format in interface Formatter
formatPatternRun
protected String formatPatternRun(LogEvent event,
PatternFormatter.PatternRun run)
Formats a single pattern run (can be extended in subclasses).
run
- the pattern run to format.
getCategory
protected String getCategory(String category,
String format)
Utility method to format category.
category
- the category stringformat
- ancilliary format parameter - allowed to be null
getContextMap
protected String getContextMap(ContextMap map,
String format)
Utility method to format context map.
map
- the context mapformat
- ancilliary format parameter - allowed to be null
getMessage
protected String getMessage(String message,
String format)
Utility method to format message.
message
- the message stringformat
- ancilliary format parameter - allowed to be null
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.
time
- the timeformat
- ancilliary format parameter - allowed to be null
getStackTrace
protected String getStackTrace(Throwable throwable,
String format)
Utility method to format stack trace.
throwable
- the throwable instanceformat
- ancilliary format parameter - allowed to be null
getThread
protected String getThread(String format)
Get formatted thread string.
getTime
protected String getTime(long time,
String format)
Utility method to format time.
time
- the timeformat
- ancilliary format parameter - allowed to be null
getTypeIdFor
protected int getTypeIdFor(String type)
Retrieve the type-id for a particular string.
parse
protected final void parse(String patternString)
Parse the input pattern and build internal data structures.
patternString
- the pattern