Author: tschoening
Date: Fri Jan 24 08:18:57 2014
New Revision: 1560915
URL: http://svn.apache.org/r1560915
Log:
fixed some syntax errors
Modified:
incubator/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h
Modified: incubator/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h
URL:
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h?rev=1560915&r1=1560914&r2=1560915&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h (original)
+++ incubator/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h Fri Jan 24
08:18:57 2014
@@ -23,8 +23,6 @@
#pragma warning ( disable: 4231 4251 4275 4786 )
#endif
-
-
#include <log4cxx/layout.h>
#include <log4cxx/pattern/loggingeventpatternconverter.h>
#include <log4cxx/pattern/formattinginfo.h>
@@ -32,427 +30,387 @@
namespace log4cxx
{
- LOG4CXX_LIST_DEF(LoggingEventPatternConverterList,
log4cxx::pattern::LoggingEventPatternConverterPtr);
- LOG4CXX_LIST_DEF(FormattingInfoList,
log4cxx::pattern::FormattingInfoPtr);
+ LOG4CXX_LIST_DEF(LoggingEventPatternConverterList,
log4cxx::pattern::LoggingEventPatternConverterPtr);
+ LOG4CXX_LIST_DEF(FormattingInfoList,
log4cxx::pattern::FormattingInfoPtr);
- /**
+ /**
- A flexible layout configurable with pattern string.
+ A flexible layout configurable with pattern string.
- <p>The goal of this class is to #format a {@link
- spi::LoggingEvent LoggingEvent} and return the results as a string.
- The results depend on the <em>conversion pattern</em>.
-
- <p>The conversion pattern is closely related to the conversion
- pattern of the printf function in C. A conversion pattern is
- composed of literal text and format control expressions called
- <em>conversion specifiers</em>.
-
- <p><i>You are free to insert any literal text within the conversion
- pattern.</i>
-
- <p>Each conversion specifier starts with a percent sign (\%) and is
- followed by optional <em>format modifiers</em> and a <em>conversion
- character</em>. The conversion character specifies the type of
- data, e.g. logger, level, date, thread name. The format
- modifiers control such things as field width, padding, left and
- right justification. The following is a simple example.
-
- <p>Let the conversion pattern be <b>"\%-5p [\%t]: \%m\%n"</b> and
assume
- that the log4cxx environment was set to use a PatternLayout. Then the
- statements
- <pre>
- LoggerPtr root = Logger::getRoot();
- root->debug("Message 1");
- root->warn("Message 2");
- </pre>
- would yield the output
- <pre>
- DEBUG [main]: Message 1
- WARN [main]: Message 2
- </pre>
-
- <p>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
- <b>\%-5p</b> means the level of the logging event should be left
- justified to a width of five characters.
-
- The recognized conversion characters are
-
- <p>
- <table border="1" CELLPADDING="8">
- <tr>
- <td align=center><b>Conversion Character</b></td>
- <td align=center><b>Effect</b></td>
- </tr>
-
- <tr>
- <td align=center><b>c</b></td>
-
- <td>Used to output the logger of the logging event. The
- logger conversion specifier can be optionally followed by
- <em>precision specifier</em>, that is a decimal constant in
- brackets.
-
- <p>If a precision specifier is given, then only the corresponding
- number of right most components of the logger name will be
- printed. By default the logger name is printed in full.
-
- <p>For example, for the logger name "a.b.c" the pattern
- <b>\%c{2}</b> will output "b.c".
-
- </td>
- </tr>
-
- <tr>
- <td align="center">
- <b>C</b>
- <p><b>class</b></p>
- </td>
-
- <td>
- Used to output the class of the issuer of the logging event if the
- compiler used supports a macro to retrieve the method of the
- currently compiled line and if the LOG4CXX_TRACE-like macros are
- used to issue a logging request. In this case the macro LOG4CXX_*
- is expanded at compile time to generate location info of the
- logging event and adds the method name, besides file and line, if
- available. In most cases the provided method contains the classname
- and can therefore be retrieved form the location info as needed.
-
- <p>
- Currently supported compilers are those from Microsoft, GNU-C and
- Borland.
- </p>
- </td>
- </tr>
-
- <tr> <td align=center><b>d</b></td> <td>Used to output the date of
- the logging event. The date conversion specifier may be
- followed by a set of braces containing a
- date and time pattern string compatible with
java.text.SimpleDateFormat,
- <em>ABSOLUTE</em>, <em>DATE</em> or <em>ISO8601</em>.
- For example, <b>%d{HH:mm:ss,SSS}</b>,
- <b>%d{dd MMM yyyy HH:mm:ss,SSS}</b> or
- <b>%d{DATE}</b>. If no date format specifier is given then
- ISO8601 format is assumed.
- </td>
- </tr>
-
- <tr>
- <td align=center><b>F</b></td>
-
- <td>Used to output the file name where the logging request was
- issued.
-
- </tr>
-
- <tr>
- <td align=center><b>l</b></td>
-
- <td>Used to output location information of the caller which generated
- the logging event.
-
- </td>
- </tr>
-
- <tr>
- <td align=center><b>L</b></td>
-
- <td>Used to output the line number from where the logging request
- was issued.
- </tr>
-
-
- <tr>
- <td align=center><b>m</b></td>
- <td>Used to output the application supplied message associated with
- the logging event.</td>
- </tr>
-
- <tr>
- <td align="center">
- <b>M</b>
- <p><b>method</b></p>
- </td>
-
- <td>
- Used to output the method of the issuer of the logging event if the
- compiler used supports a macro to retrieve the method of the
- currently compiled line and if the LOG4CXX_TRACE-like macros are
- used to issue a logging request. In this case the macro LOG4CXX_*
- is expanded at compile time to generate location info of the
- logging event and adds the method name, besides file and line, if
- available. In most cases the provided method contains the classname
- which is ignored in every attempt to retrieve the method from the
- location info.
-
- <p>
- Currently supported compilers are those from Microsoft, GNU-C and
- Borland.
- </p>
- </td>
- </tr>
-
- <tr>
- <td align=center><b>n</b></td>
-
- <td>Outputs the platform dependent line separator character or
- characters.
-
- <p>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.
-
-
- </tr>
-
- <tr>
- <td align=center><b>p</b></td>
- <td>Used to output the level of the logging event.</td>
- </tr>
-
- <tr>
-
- <td align=center><b>r</b></td>
-
- <td>Used to output the number of milliseconds elapsed since the start
- of the application until the creation of the logging event.</td>
- </tr>
-
-
- <tr>
- <td align=center><b>t</b></td>
-
- <td>Used to output the name of the thread that generated the
- logging event.</td>
-
- </tr>
-
- <tr>
-
- <td align=center><b>x</b></td>
-
- <td>Used to output the NDC (nested diagnostic context) associated
- with the thread that generated the logging event.
- </td>
- </tr>
-
-
- <tr>
- <td align=center><b>X</b></td>
-
- <td>
-
- <p>Used to output the MDC (mapped diagnostic context) associated
- with the thread that generated the logging event. The <b>X</b>
- conversion character <em>must</em> be followed by the key for the
- map placed between braces, as in <b>\%X{clientNumber}</b> where
- <code>clientNumber</code> is the key. The value in the MDC
- corresponding to the key will be output.</p>
-
- <p>See MDC class for more details.
- </p>
-
- </td>
- </tr>
-
- <tr>
-
- <td align=center><b>\%</b></td>
-
- <td>The sequence \%\% outputs a single percent sign.
- </td>
- </tr>
-
- </table>
-
- <p>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.
-
- <p>The optional format modifier is placed between the percent sign
- and the conversion character.
-
- <p>The first optional format modifier is the <em>left justification
- flag</em> which is just the minus (-) character. Then comes the
- optional <em>minimum field width</em> 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.
-
- <p>This behavior can be changed using the <em>maximum field
- width</em> 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
- <em>beginning</em> 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.
-
- <p>Below are various format modifier examples for the logger
- conversion specifier.
-
- <p>
- <TABLE BORDER=1 CELLPADDING=8>
- <tr>
- <td align=center><b>Format modifier</b></td>
- <td align=center><b>left justify</b></td>
- <td align=center><b>minimum width</b></td>
- <td align=center><b>maximum width</b></td>
- <td align=center><b>comment</b></td>
- </tr>
-
- <tr>
- <td align=center>\%20c</td>
- <td align=center>false</td>
- <td align=center>20</td>
- <td align=center>none</td>
-
- <td>Left pad with spaces if the logger name is less than 20
- characters long.
-
- <tr> <td align=center>\%-20c</td> <td align=center>true</td> <td
- align=center>20</td> <td align=center>none</td> <td>Right pad with
- spaces if the logger name is less than 20 characters long.
-
- <tr>
- <td align=center>\%.30c</td>
- <td align=center>NA</td>
- <td align=center>none</td>
- <td align=center>30</td>
-
- <td>Truncate from the beginning if the logger name is longer than 30
- characters.
-
- <tr>
- <td align=center>\%20.30c</td>
- <td align=center>false</td>
- <td align=center>20</td>
- <td align=center>30</td>
-
- <td>Left pad with spaces if the logger name is shorter than 20
- characters. However, if logger name is longer than 30 characters,
- then truncate from the beginning.
-
- <tr>
- <td align=center>\%-20.30c</td>
- <td align=center>true</td>
- <td align=center>20</td>
- <td align=center>30</td>
-
- <td>Right pad with spaces if the logger name is shorter than 20
- characters. However, if logger name is longer than 30 characters,
- then truncate from the beginning.
-
- </table>
-
- <p>Below are some examples of conversion patterns.
-
- <p><b>\%r [\%t] \%-5p \%c \%x - \%m\n</b>
- <p>This is essentially the TTCC layout.
-
- <p><b>\%-6r [\%15.15t] \%-5p \%30.30c \%x - \%m\n</b>
-
- <p>Similar to the TTCC layout except that the relative time is
- right padded if less than 6 digits, thread name is right padded if
- less than 15 characters and truncated if longer and the logger
- name is left padded if shorter than 30 characters and truncated if
- longer.
-
- <p>The above text is largely inspired from Peter A. Darnell and
- Philip E. Margolis' highly recommended book "C -- a Software
- Engineering Approach", ISBN 0-387-97389-3.
- */
- class LOG4CXX_EXPORT PatternLayout : public Layout
- {
- /**
- * Conversion pattern.
- */
- LogString conversionPattern;
-
- /**
- * Pattern converters.
- */
- LOG4CXX_LIST_DEF(LoggingEventPatternConverterList,
log4cxx::pattern::LoggingEventPatternConverterPtr);
- LoggingEventPatternConverterList patternConverters;
-
- /**
- * Field widths and alignment corresponding to pattern
converters.
- */
- LOG4CXX_LIST_DEF(FormattingInfoList,
log4cxx::pattern::FormattingInfoPtr);
- FormattingInfoList patternFields;
-
-
- public:
- DECLARE_LOG4CXX_OBJECT(PatternLayout)
- BEGIN_LOG4CXX_CAST_MAP()
- LOG4CXX_CAST_ENTRY(PatternLayout)
- LOG4CXX_CAST_ENTRY_CHAIN(Layout)
- END_LOG4CXX_CAST_MAP()
-
- /**
- Does nothing
- */
- PatternLayout();
-
- /**
- Constructs a PatternLayout using the supplied conversion
pattern.
- */
- PatternLayout(const LogString& pattern);
-
- /**
- Set the <b>ConversionPattern</b> option. This is the string
which
- controls formatting and consists of a mix of literal content
and
- conversion specifiers.
- */
- void setConversionPattern(const LogString& conversionPattern);
-
- /**
- Returns the value of the <b>ConversionPattern</b> option.
- */
- inline LogString getConversionPattern() const
- { return conversionPattern; }
-
- /**
- Call createPatternParser
- */
- virtual void activateOptions(log4cxx::helpers::Pool& p);
-
- virtual void setOption(const LogString& option, const
LogString& value);
-
- /**
- The PatternLayout does not handle the throwable contained
within
- {@link spi::LoggingEvent LoggingEvents}. Thus, it returns
- <code>true</code>.
- */
- virtual bool ignoresThrowable() const
- { return true; }
-
- /**
- Produces a formatted string as specified by the conversion
pattern.
- */
- virtual void format(LogString& output,
- const spi::LoggingEventPtr& event,
log4cxx::helpers::Pool& pool) const;
-
- protected:
- virtual log4cxx::pattern::PatternMap getFormatSpecifiers();
- };
- LOG4CXX_PTR_DEF(PatternLayout);
-} // namespace log4cxx
+ <p>
+ The goal of this class is to #format a {@link
spi::LoggingEvent LoggingEvent} and
+ return the results as a string. The results depend on
the <em>conversion pattern</em>.
+ </p>
+
+ <p>
+ The conversion pattern is closely related to the
conversion pattern of the printf
+ function in C. A conversion pattern is composed of
literal text and format control
+ expressions called <em>conversion specifiers</em>.
+ </p>
+
+ <p>
+ <i>You are free to insert any literal text within the
conversion pattern.</i>
+ </p>
+
+ <p>
+ Each conversion specifier starts with a percent sign
(%) and is followed by optional
+ <em>format modifiers</em> and a <em>conversion
character</em>. The conversion character
+ specifies the type of data, e.g. logger, level, date,
thread name. The format modifiers
+ control such things as field width, padding, left and
right justification. The
+ following is a simple example.
+ </p>
+
+ <p>
+ Let the conversion pattern be <strong>"%-5p [%t]:
%m%n"</strong> and assume that the log4cxx
+ environment was set to use a PatternLayout. Then the
statements
+ <pre>
+ LoggerPtr root = Logger::getRoot();
+ root->debug("Message 1");
+ root->warn("Message 2");</pre>
+ would yield the output
+ <pre>
+ DEBUG [main]: Message 1
+ WARN [main]: Message 2</pre>
+ </p>
+
+ <p>
+ 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 <strong>%-5p</strong>
+ means the level of the logging event should be left
justified to a width of five
+ characters.
+ </p>
+
+ <p>The recognized conversion characters are:</p>
+
+ <table border="1" cellpadding="8">
+ <tr>
+ <th align="center"><strong>Conversion
Character</strong></th>
+ <th align="center"><strong>Effect</strong></th>
+ </tr>
+ <tr>
+ <td align="center"><strong>c</strong></td>
+ <td>
+ Used to output the logger of the
logging event. The logger conversion specifier
+ can be optionally followed by
<em>precision specifier</em>, that is a decimal
+ constant in brackets.
+ <p>
+ If a precision specifier is
given, then only the corresponding number of
+ right most components of the
logger name will be printed. By default the
+ logger name is printed in full.
+ </p>
+ <p>
+ For example, for the logger
name "a.b.c" the pattern <strong>\%c{2}</strong> will
+ output "b.c".
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td align="center">
+ <p><strong>C</strong></p>
+ <p><strong>class</strong></p>
+ </td>
+ <td>
+ Used to output the class of the issuer
of the logging event if the compiler
+ used supports a macro to retrieve the
method of the currently compiled line and
+ if the LOG4CXX_TRACE-like macros are
used to issue a logging request. In this
+ case the macro LOG4CXX_* is expanded at
compile time to generate location info
+ of the logging event and adds the
method name, besides file and line, if
+ available. In most cases the provided
method contains the classname and can
+ therefore be retrieved form the
location info as needed.
+ <p>
+ Currently supported compilers
are those from Microsoft, GNU-C and Borland.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>d</strong></td>
+ <td>
+ Used to output the date of the logging
event. The date conversion specifier may
+ be followed by a set of braces
containing a date and time pattern string
+ compatible with
java.text.SimpleDateFormat, <em>ABSOLUTE</em>, <em>DATE</em> or
+ <em>ISO8601</em>. For example,
<strong>%d{HH:mm:ss,SSS}</strong>,
+
<strong>%d{dd MMM yyyy HH:mm:ss,SSS}</strong> or
<strong>%d{DATE}</strong>. If no
+ date format specifier is given then
ISO8601 format is assumed.
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>F</strong></td>
+ <td>
+ Used to output the file name where the
logging request was issued.
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>l</strong></td>
+ <td>
+ Used to output location information of
the caller which generated the logging
+ event.
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>L</strong></td>
+ <td>
+ Used to output the line number from
where the logging request was issued.
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>m</strong></td>
+ <td>
+ Used to output the application supplied
message associated with the logging
+ event.
+ </td>
+ </tr>
+ <tr>
+ <td align="center">
+ <strong>M</strong>
+ <p><strong>method</strong></p>
+ </td>
+ <td>
+ Used to output the method of the issuer
of the logging event if the compiler
+ used supports a macro to retrieve the
method of the currently compiled line
+ and if the LOG4CXX_TRACE-like macros
are used to issue a logging request. In
+ this case the macro LOG4CXX_* is
expanded at compile time to generate location
+ info of the logging event and adds the
method name, besides file and line, if
+ available. In most cases the provided
method contains the classname which is
+ ignored in every attempt to retrieve
the method from the location info.
+ <p>
+ Currently supported compilers
are those from Microsoft, GNU-C and Borland.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>n</strong></td>
+ <td>
+ Outputs the platform dependent line
separator character or characters.
+ <p>
+ 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>
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>p</strong></td>
+ <td>Used to output the level of the logging
event.</td>
+ </tr>
+ <tr>
+ <td align="center"><strong>r</strong></td>
+ <td>
+ Used to output the number of
milliseconds elapsed since the start of the
+ application until the creation of the
logging event.
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>t</strong></td>
+ <td>Used to output the name of the thread that
generated the logging event.</td>
+ </tr>
+ <tr>
+ <td align="center"><strong>x</strong></td>
+ <td>
+ Used to output the NDC (nested
diagnostic context) associated with the thread that
+ generated the logging event.
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>X</strong></td>
+ <td>
+ Used to output the MDC (mapped
diagnostic context) associated with the thread that
+ generated the logging event. The
<strong>X</strong> conversion character <em>must</em> be
+ followed by the key for the map placed
between braces, as in <strong>\%X{clientNumber}</strong>
+ where <code>clientNumber</code> is the
key. The value in the MDC corresponding to
+ the key will be output.
+ <p>See MDC class for more details.</p>
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><strong>\%</strong></td>
+ <td>The sequence \%\% outputs a single percent
sign.</td>
+ </tr>
+ </table>
+
+ <p>
+ 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.
+ </p>
+
+ <p>
+ The optional format modifier is placed between the
percent sign and the conversion
+ character.
+ </p>
+
+ <p>
+ The first optional format modifier is the <em>left
justification flag</em> which is
+ just the minus (-) character. Then comes the optional
<em>minimum field width</em>
+ 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.
+ </p>
+
+ <p>
+ This behavior can be changed using the <em>maximum
field width</em> 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 <em>beginning</em> 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.
+ </p>
+
+ <p>Below are various format modifier examples for the logger
conversion specifier.</p>
+
+ <table border="1" cellpadding="8">
+ <tr>
+ <th align="center"><strong>Format
modifier</strong></th>
+ <th align="center"><strong>left
justify</strong></th>
+ <th align="center"><strong>minimum
width</strong></th>
+ <th align="center"><strong>maximum
width</strong></th>
+ <th align="center"><strong>comment</strong></th>
+ </tr>
+ <tr>
+ <td align="center">%20c</td>
+ <td align="center">false</td>
+ <td align="center">20</td>
+ <td align="center">none</td>
+ <td>Left pad with spaces if the logger name is
less than 20 characters long.</td>
+ </tr>
+ <tr>
+ <td align="center">%-20c</td>
+ <td align="center">true</td>
+ <td align="center">20</td>
+ <td align="center">none</td>
+ <td>Right pad with spaces if the logger name is
less than 20 characters long.</td>
+ </tr>
+ <tr>
+ <td align="center">%.30c</td>
+ <td align="center">NA</td>
+ <td align="center">none</td>
+ <td align="center">30</td>
+ <td>Truncate from the beginning if the logger
name is longer than 30 characters.</td>
+ </tr>
+ <tr>
+ <td align="center">%20.30c</td>
+ <td align="center">false</td>
+ <td align="center">20</td>
+ <td align="center">30</td>
+ <td>
+ Left pad with spaces if the logger name
is shorter than 20 characters. However, if
+ logger name is longer than 30
characters, then truncate from the beginning.
+ </td>
+ </tr>
+ <tr>
+ <td align="center">%-20.30c</td>
+ <td align="center">true</td>
+ <td align="center">20</td>
+ <td align="center">30</td>
+ <td>
+ Right pad with spaces if the logger
name is shorter than 20 characters. However, if
+ logger name is longer than 30
characters, then truncate from the beginning.
+ </td>
+ </tr>
+ </table>
+
+ <p>Below are some examples of conversion patterns.</p>
+
+ <p><strong>%r [%t] %-5p %c %x - %m\n</strong></p>
+ <p>This is essentially the TTCC layout.</p>
+
+ <p><strong>%-6r [%15.15t] %-5p %30.30c %x - %m\n</strong></p>
+
+ <p>
+ Similar to the TTCC layout except that the relative
time is right padded if less than 6
+ digits, thread name is right padded if less than 15
characters and truncated if longer
+ and the logger name is left padded if shorter than 30
characters and truncated if
+ longer.
+ </p>
+
+ <p>
+ The above text is largely inspired from Peter A.
Darnell and Philip E. Margolis' highly
+ recommended book "C -- a Software Engineering
Approach", ISBN 0-387-97389-3.
+ </p>
+ */
+ class LOG4CXX_EXPORT PatternLayout : public Layout
+ {
+ /**
+ * Conversion pattern.
+ */
+ LogString conversionPattern;
+
+ /**
+ * Pattern converters.
+ */
+ LOG4CXX_LIST_DEF(LoggingEventPatternConverterList,
log4cxx::pattern::LoggingEventPatternConverterPtr);
+ LoggingEventPatternConverterList patternConverters;
+
+ /**
+ * Field widths and alignment corresponding to pattern
converters.
+ */
+ LOG4CXX_LIST_DEF(FormattingInfoList,
log4cxx::pattern::FormattingInfoPtr);
+ FormattingInfoList patternFields;
+
+ public:
+ DECLARE_LOG4CXX_OBJECT(PatternLayout)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(PatternLayout)
+ LOG4CXX_CAST_ENTRY_CHAIN(Layout)
+ END_LOG4CXX_CAST_MAP()
+
+ /**
+ * Does nothing
+ */
+ PatternLayout();
+
+ /**
+ * Constructs a PatternLayout using the supplied conversion
pattern.
+ */
+ PatternLayout(const LogString& pattern);
+
+ /**
+ * Set the <strong>ConversionPattern</strong> option. This is
the string which
+ * controls formatting and consists of a mix of literal content
and
+ * conversion specifiers.
+ */
+ void setConversionPattern(const LogString& conversionPattern);
+
+ /**
+ * Returns the value of the <strong>ConversionPattern</strong>
option.
+ */
+ inline LogString getConversionPattern() const
+ { return conversionPattern; }
+
+ /**
+ * Call createPatternParser
+ */
+ virtual void activateOptions(log4cxx::helpers::Pool& p);
+
+ virtual void setOption(const LogString& option, const
LogString& value);
+
+ /**
+ * The PatternLayout does not handle the throwable contained
within
+ * {@link spi::LoggingEvent LoggingEvents}. Thus, it returns
+ * <code>true</code>.
+ */
+ virtual bool ignoresThrowable() const { return true; }
+
+ /**
+ * Produces a formatted string as specified by the conversion
pattern.
+ */
+ virtual void format( LogString& output,
+ const
spi::LoggingEventPtr& event,
+
log4cxx::helpers::Pool& pool) const;
+
+ protected:
+ virtual log4cxx::pattern::PatternMap getFormatSpecifiers();
+ };
+
+ LOG4CXX_PTR_DEF(PatternLayout);
+} // namespace log4cxx
#if defined(_MSC_VER)
#pragma warning ( pop )
#endif
-
#endif //_LOG4CXX_PATTERN_LAYOUT_H