logging-log4net-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roy Chastain" <...@roychastain.org>
Subject Possible new code - DynamicPatternLayout
Date Mon, 12 Sep 2011 13:22:54 GMT
I have a new class that I implemented several years ago.  It provides a
DynamicPatternConverter.  Its primary purpose is to provide dynamic
headers and footers in logs.

Below is the description from the code
	/// <summary>
	/// A flexible layout configurable with pattern string that
re-evaluates on each call.
	/// </summary>
	/// <remarks>
	/// <para>This class is built on <see
cref="PatternLayout"></see> and provides all the
	/// features and capabilities of PatternLayout.  PatternLayout
is a 'static' class
	/// in that its layout is done once at configuration time.  This
class will recreate
	/// the layout on each reference.</para>
	/// <para>One important difference between PatternLayout and
DynamicPatternLayout is the
	/// treatment of the Header and Footer parameters in the
configuration.  The Header and Footer
	/// parameters for DynamicPatternLayout must be syntactically in
the form of a PatternString,
	/// but should not be marked as type log4net.Util.PatternString.
Doing so causes the
	/// pattern to be staticly converted at configuration tiame and
causes DynamicPatternLayout
	/// to perform the same as PatternLayout.</para>
	/// <para>Please see <see cref="PatternLayout"/> for complete
	/// <example>
	///	&lt;layout
	///   &lt;param name="Header" value="%newline**** Trace Opened
Local: %date{yyyy-MM-dd HH:mm:ss.fff}     UTC: %utcdate{yyyy-MM-dd
HH:mm:ss.fff} ****%newline" /&gt;
	///   &lt;param name="Footer" value="**** Trace Closed
%date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /&gt;
	/// &lt;/layout&gt;
	/// </example>
	/// </remarks>

I do not have test cases.  This code is available for inclusion in
log4Net if anyone feels that it is worth including.  I like it because I
can scan through a logfile and find out when it was closed and/or
opened.  (Append = true).  The entire module is 142 lines including

Roy Chastain

View raw message