Author: tschoening Date: Tue Jan 28 08:17:01 2014 New Revision: 1561985 URL: http://svn.apache.org/r1561985 Log: fixed indentation
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=1561985&r1=1561984&r2=1561985&view=diff ============================================================================== --- incubator/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h (original) +++ incubator/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h Tue Jan 28 08:17:01 2014 @@ -35,302 +35,302 @@ namespace log4cxx /** - 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> - - <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> + * <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 {