|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
Header in new fileIs it possible to log a header message to a new file (using the rollingfileappender)? (not a header before every log entry) Grz Deel je favoriete foto's online met Windows Live Photos |
|
|
RE: Header in new fileIt is possible. Example below
<appender name="RollingTrace" type="log4net.Appender.RollingFileAppender"> <param name="File" value="${ALLUSERSPROFILE}\\Trace.txt" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="4" /> <param name="MaximumFileSize" value="500000" /> <param name="RollingStyle" value="Size" /> <param name="StaticLogFileName" value="true" /> <param name="Threshold" value="TRACE" /> <param name="PreserveLogFileNameExtension" value="true" /> <layout type="log4net.Layout.DynamicPatternLayout"> <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" /> <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> <param name="ConversionPattern" value="%d{dd HH:mm:ss.fff} [%4t] %P{instance}::%M - %m%n" /> </layout> </appender> Just FYI, this will not work out of the box. The Header/Footer formatting will work, but the time will not ever change with the release code. I had to update some of the DynamicPatternLayout code to make it re-evaluate the date/time for each file. I am willing to share the changes, but I have NO IDEA how to use the source control product to create the changes etc. From: Wilco K [mailto:wilcok36@...] Sent: Thursday, October 08, 2009 09:13 To: log4net-user@... Subject: Header in new file LS, Is it possible to log a header message to a new file (using the rollingfileappender)? (not a header before every log entry) Grz ________________________________________ Deel je favoriete foto's online met Windows Live Photos |
|
|
RE: Header in new fileIt looks there is no DynamicPatternLayout type in the log4net assembly. Can you send me your working copy of it? Thanks! > Subject: RE: Header in new file > Date: Thu, 8 Oct 2009 22:35:27 -0400 > From: Roy@... > To: log4net-user@... > > It is possible. Example below > > <appender name="RollingTrace" type="log4net.Appender.RollingFileAppender"> > <param name="File" value="${ALLUSERSPROFILE}\\Trace.txt" /> > <param name="AppendToFile" value="true" /> > <param name="MaxSizeRollBackups" value="4" /> > <param name="MaximumFileSize" value="500000" /> > <param name="RollingStyle" value="Size" /> > <param name="StaticLogFileName" value="true" /> > <param name="Threshold" value="TRACE" /> > <param name="PreserveLogFileNameExtension" value="true" /> > <layout type="log4net.Layout.DynamicPatternLayout"> > <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" /> > <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> > <param name="ConversionPattern" value="%d{dd HH:mm:ss.fff} [%4t] %P{instance}::%M - %m%n" /> > </layout> > </appender> > > Just FYI, this will not work out of the box. The Header/Footer formatting will work, but the time will not ever change with the release code. I had to update some of the DynamicPatternLayout code to make it re-evaluate the date/time for each file. > > I am willing to share the changes, but I have NO IDEA how to use the source control product to create the changes etc. > > > > > From: Wilco K [mailto:wilcok36@...] > Sent: Thursday, October 08, 2009 09:13 > To: log4net-user@... > Subject: Header in new file > > LS, > > Is it possible to log a header message to a new file (using the rollingfileappender)? (not a header before every log entry) > > Grz > ________________________________________ > Deel je favoriete foto's online met Windows Live Photos Lees je Het Net, KPN/Planet, Ziggo of XS4ALL-mail in Windows Live Hotmail |
|
|
RE: Header in new fileCreate a new module (I called mine DynamicPatternLayout) in the
src\layout directory. Paste this code into it. Build and use. (As I recall that is all I did.) (Code below has TABs in it for alignment.) using System; using System.Collections; using System.IO; using log4net.Core; using log4net.Layout.Pattern; using log4net.Util; namespace log4net.Layout { /// <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 capabilites 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>On important difference between PatternLayout and DynamicPatternLayout is the /// treatment of the Header and Foot parameters in the configuration. The Header and Footer /// parameters for DynamicPatternLayout must be syntactacly 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"></see> for complete documentation.</para> /// </remarks> class DynamicPatternLayout: PatternLayout { #region Member Variables /// <summary> /// The header PatternString /// </summary> private PatternString m_headerPatternString = new PatternString(""); /// <summary> /// The footer PatternString /// </summary> private PatternString m_footerPatternString = new PatternString(""); #endregion #region Constructors /// <summary> /// Constructs a DynamicPatternLayout using the DefaultConversionPattern /// </summary> /// <remarks> /// <para> /// The default pattern just produces the application supplied message. /// </para> /// <para> /// Note to Inheritors: This constructor calls the virtual method /// <see cref="CreatePatternParser"/>. If you override this method be /// aware that it will be called before your is called constructor. /// </para> /// <para> /// As per the <see cref="IOptionHandler"/> contract the <see cref="ActivateOptions"/> /// method must be called after the properties on this object have been /// configured. /// </para> /// </remarks> public DynamicPatternLayout() : base() { } /// <summary> /// Constructs a DynamicPatternLayout using the supplied conversion pattern /// </summary> /// <param name="pattern">the pattern to use</param> /// <remarks> /// <para> /// Note to Inheritors: This constructor calls the virtual method /// <see cref="CreatePatternParser"/>. If you override this method be /// aware that it will be called before your is called constructor. /// </para> /// <para> /// When using this constructor the <see cref="ActivateOptions"/> method /// need not be called. This may not be the case when using a subclass. /// </para> /// </remarks> public DynamicPatternLayout (string pattern) : base(pattern) { } #endregion #region Override implementation of LayoutSkeleton public override string Header { get { return m_headerPatternString.Format(); } set { base.Header = value; m_headerPatternString = new PatternString(value); } } /* property DynamicPatternLayout Header */ public override string Footer { get { return m_footerPatternString.Format(); } set { base.Footer = value; m_footerPatternString = new PatternString(value); } } /* property DynamicPatternLayout Footer */ #endregion } /* class DynamicPatternLayout */ } /* namespace log4net.Layout */ ---------------------------------------------------------------------- Roy Chastain -----Original Message----- From: Wilco K [mailto:wilcok36@...] Sent: Friday, October 09, 2009 04:16 To: log4net-user@... Subject: RE: Header in new file It looks there is no DynamicPatternLayout type in the log4net assembly. Can you send me your working copy of it? Thanks! > Subject: RE: Header in new file > Date: Thu, 8 Oct 2009 22:35:27 -0400 > From: Roy@... > To: log4net-user@... > > It is possible. Example below > > <appender name="RollingTrace" > type="log4net.Appender.RollingFileAppender"> > <param name="File" value="${ALLUSERSPROFILE}\\Trace.txt" /> <param > name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" > value="4" /> <param name="MaximumFileSize" value="500000" /> <param > name="RollingStyle" value="Size" /> <param name="StaticLogFileName" > value="true" /> <param name="Threshold" value="TRACE" /> <param > name="PreserveLogFileNameExtension" value="true" /> <layout > type="log4net.Layout.DynamicPatternLayout"> > <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" /> <param name="Footer" value="**** Trace Closed > %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> <param > name="ConversionPattern" value="%d{dd HH:mm:ss.fff} [%4t] > %P{instance}::%M - %m%n" /> </layout> </appender> > > Just FYI, this will not work out of the box. The Header/Footer code. I had to update some of the DynamicPatternLayout code to make it re-evaluate the date/time for each file. > > I am willing to share the changes, but I have NO IDEA how to use the source control product to create the changes etc. > > > > > From: Wilco K [mailto:wilcok36@...] > Sent: Thursday, October 08, 2009 09:13 > To: log4net-user@... > Subject: Header in new file > > LS, > > Is it possible to log a header message to a new file (using the > rollingfileappender)? (not a header before every log entry) > > Grz > ________________________________________ > Deel je favoriete foto's online met Windows Live Photos ________________________________ Lees je Het Net, KPN/Planet, Ziggo of XS4ALL-mail in Windows Live Hotmail <http://www.microsoft.com/netherlands/windowslive/Views/productDetail.as px?product=Hotmail&openVideo=5> |
| Free embeddable forum powered by Nabble | Forum Help |