Posted on 2010-07-28 18:50
祝嘉 阅读(547)
评论(0) 编辑 收藏 所属分类:
Library
The
PatternLayout
is by far the most widely
used log4j layout. It formats logging events according to a
conversion pattern specified by the user. Conversion patterns are
composed of literal text and conversion specifiers. Literal text is
output as is. Conversion specifiers consist of the % character
followed by an optional format modifier and a mandatory conversion
character. For example, %-5p [%t]: %m%n is a conversion
pattern composed of a priority (a.k.a. level) conversion specifier
followed by the literal text " ]", followed by a thread
conversion specifier, followed by literal text "]: "
followed by a message conversion specifier and a system dependent
line separator. See PatternLayout
documentation for more details.
Note
that there is no explicit separator between text and conversion
specifiers. The pattern parser knows when it has reached the end of a
conversion specifier when it reads a conversion character. In the
example above the conversion specifier %-5p means the priority
of the logging event should be left justified to a width of five
characters. The recognized conversion characters are
Conversion Character
|
Effect
|
c
|
Used
to output the category of the logging event. The category
conversion specifier can be optionally followed by precision
specifier, that is a decimal constant in brackets.
If
a precision specifier is given, then only the corresponding number
of right most components of the category name will be printed. By
default the category name is printed in full.
For example, for the
category name "a.b.c" the pattern %c{2} will
output "b.c".
|
C
|
Used
to output the fully qualified class name of the caller issuing the
logging request. This conversion specifier can be optionally
followed by precision specifier, that is a decimal
constant in brackets.
If
a precision specifier is given, then only the corresponding number
of right most components of the class name will be printed. By
default the class name is output in fully qualified form.
For
example, for the class name "org.apache.xyz.SomeClass",
the pattern %C{1} will output "SomeClass".
WARNING Generating
the caller class information is slow. Thus, use should be avoided
unless execution speed is not an issue.
|
d
|
Used
to output the date of the logging event. The date conversion
specifier may be followed by a date format specifier
enclosed between braces. For example, %d{HH:mm:ss,SSS} or
%d{dd MMM yyyy HH:mm:ss,SSS}. If no date
format specifier is given then ISO8601 format is assumed.
The
date format specifier admits the same syntax as the time pattern
string of the SimpleDateFormat .
Although part of the standard JDK, the performance of
SimpleDateFormat is quite poor.
For
better results it is recommended to use the log4j date formatters.
These can be specified using one of the strings "ABSOLUTE",
"DATE" and "ISO8601" for specifying
AbsoluteTimeDateFormat ,
DateTimeDateFormat
and respectively ISO8601DateFormat .
For example, %d{ISO8601} or %d{ABSOLUTE}.
These dedicated date
formatters perform significantly better than SimpleDateFormat .
|
F
|
Used
to output the file name where the logging request was issued.
WARNING Generating
caller location information is extremely slow and should be
avoided unless execution speed is not an issue.
|
l
|
Used
to output location information of the caller which generated the
logging event.
The
location information depends on the JVM implementation but usually
consists of the fully qualified name of the calling method
followed by the callers source the file name and line number
between parentheses.
The location information
can be very useful. However, its generation is extremely
slow and should be avoided unless execution speed is not an issue.
|
L
|
Used
to output the line number from where the logging request was
issued.
WARNING Generating
caller location information is extremely slow and should be
avoided unless execution speed is not an issue.
|
m
|
Used to output the
application supplied message associated with the logging event.
|
M
|
Used
to output the method name where the logging request was issued.
WARNING Generating
caller location information is extremely slow and should be
avoided unless execution speed is not an issue.
|
n
|
Outputs
the platform dependent line separator character or characters.
This conversion character
offers practically the same performance as using non-portable line
separator strings such as "\n", or "\r\n".
Thus, it is the preferred way of specifying a line separator.
|
p
|
Used to output the
priority of the logging event.
|
r
|
Used to output the number
of milliseconds elapsed from the construction of the layout until
the creation of the logging event.
|
t
|
Used to output the name
of the thread that generated the logging event.
|
x
|
Used to output the NDC
(nested diagnostic context) associated with the thread that
generated the logging event.
|
X
|
Used
to output the MDC (mapped diagnostic context) associated with the
thread that generated the logging event. The X conversion
character must be followed by the key for the map placed
between braces, as in %X{clientNumber} where clientNumber
is the key. The value in the MDC corresponding to the key will be
output.
See MDC
class for more details.
|
%
|
The sequence %% outputs a
single percent sign.
|
By
default the relevant information is output as is. However, with the
aid of format modifiers it is possible to change the minimum field
width, the maximum field width and justification.
The
optional format modifier is placed between the percent sign and the
conversion character.
The
first optional format modifier is the left justification flag
which is just the minus (-) character. Then comes the optional
minimum field width modifier. This is a decimal constant
that represents the minimum number of characters to output. If the
data item requires fewer characters, it is padded on either the left
or the right until the minimum width is reached. The default is to
pad on the left (right justify) but you can specify right padding
with the left justification flag. The padding character is space. If
the data item is larger than the minimum field width, the field is
expanded to accommodate the data. The value is never truncated.
This
behavior can be changed using the maximum field width
modifier which is designated by a period followed by a decimal
constant. If the data item is longer than the maximum field, then the
extra characters are removed from the beginning of the data
item and not from the end. For example, it the maximum field width is
eight and the data item is ten characters long, then the first two
characters of the data item are dropped. This behavior deviates from
the printf function in C where truncation is done from the end.