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
documentation.</para>
        /// <example>
        ///     &lt;layout
type="log4net.Layout.DynamicPatternLayout"&gt;
        ///   &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
comments.

----------------------------------------------------------------------
Roy Chastain




Reply via email to