nicko       2004/09/10 12:40:24

  Modified:    src/Layout ExceptionLayout.cs LayoutSkeleton.cs
                        PatternLayout.cs SimpleLayout.cs XMLLayoutBase.cs
  Log:
  Made LayoutSkeleton.IgnoresException a settable property. The user can now 
force a layout to ignore the exception in the event.
  
  Revision  Changes    Path
  1.5       +1 -14     logging-log4net/src/Layout/ExceptionLayout.cs
  
  Index: ExceptionLayout.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Layout/ExceptionLayout.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ExceptionLayout.cs        30 May 2004 11:10:31 -0000      1.4
  +++ ExceptionLayout.cs        10 Sep 2004 19:40:23 -0000      1.5
  @@ -46,6 +46,7 @@
                /// </remarks>
                public ExceptionLayout()
                {
  +                     this.IgnoresException = false;
                }
   
                #endregion
  @@ -63,20 +64,6 @@
                #endregion
   
                #region Override implementation of LayoutSkeleton
  -
  -             /// <summary>
  -             /// The ExceptionLayout only handles the exception. Thus, it 
returns <c>false</c>.
  -             /// </summary>
  -             /// <value>
  -             /// The ExceptionLayout only handles the exception. Thus, it 
returns <c>false</c>.
  -             /// </value>
  -             /// <remarks>
  -             /// The ExceptionLayout only handles the exception. Thus, it 
returns <c>false</c>.
  -             /// </remarks>
  -             override public bool IgnoresException
  -             {
  -                     get { return false; }
  -             }
   
                /// <summary>
                /// Gets the exception text from the logging event
  
  
  
  1.4       +32 -5     logging-log4net/src/Layout/LayoutSkeleton.cs
  
  Index: LayoutSkeleton.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Layout/LayoutSkeleton.cs,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LayoutSkeleton.cs 30 May 2004 11:23:01 -0000      1.3
  +++ LayoutSkeleton.cs 10 Sep 2004 19:40:23 -0000      1.4
  @@ -31,6 +31,18 @@
        /// <para>This is the base implementation of the <see cref="ILayout"/>
        /// interface. Most layout objects should extend this class.</para>
        /// </remarks>
  +     /// <remarks>
  +     /// <note type="inheritinfo">
  +     /// <para>
  +     /// Subclasses must implement the <see 
cref="Format(TextWriter,LoggingEvent)"/>
  +     /// method.
  +     /// </para>
  +     /// <para>
  +     /// Subclasses should set the <see cref="IgnoresException"/> in their 
default
  +     /// constructor.
  +     /// </para>
  +     /// </note>
  +     /// </remarks>
        /// <author>Nicko Cadell</author>
        /// <author>Gert Driesen</author>
        public abstract class LayoutSkeleton : ILayout, IOptionHandler
  @@ -53,6 +65,14 @@
                /// </remarks>
                private string m_footer = null;
   
  +             /// <summary>
  +             /// Flag indicating if this layout handles exceptions
  +             /// </summary>
  +             /// <remarks>
  +             /// <c>false</c> if this layout handles exceptions
  +             /// </remarks>
  +             private bool m_ignoresException = true;
  +
                #endregion
   
                #region Constructors
  @@ -174,14 +194,21 @@
                /// </summary>
                /// <value><c>false</c> if this layout handles 
exceptions</value>
                /// <remarks>
  -             /// <para>If this layout handles the exception object contained 
within
  +             /// <para>
  +             /// If this layout handles the exception object contained within
                /// <see cref="LoggingEvent"/>, then the layout should return
                /// <c>false</c>. Otherwise, if the layout ignores the exception
  -             /// object, then the layout should return <c>true</c>.</para>
  -             /// 
  -             /// <para>This method must be implemented by the 
subclass.</para>
  +             /// object, then the layout should return <c>true</c>.
  +             /// </para>
  +             /// <para>
  +             /// Set this value to override a this default setting.
  +             /// </para>
                /// </remarks>
  -             abstract public bool IgnoresException { get; }
  +             virtual public bool IgnoresException 
  +             { 
  +                     get { return m_ignoresException; }
  +                     set { m_ignoresException = value; }
  +             }
   
                #endregion
        }
  
  
  
  1.11      +2 -75     logging-log4net/src/Layout/PatternLayout.cs
  
  Index: PatternLayout.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Layout/PatternLayout.cs,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- PatternLayout.cs  9 Sep 2004 21:53:13 -0000       1.10
  +++ PatternLayout.cs  10 Sep 2004 19:40:23 -0000      1.11
  @@ -634,7 +634,7 @@
        /// <author>Gert Driesen</author>
        /// <author>Douglas de la Torre</author>
        /// <author>Daniel Cazzulino</author>
  -     public class PatternLayout : PatternLayoutShim
  +     public class PatternLayout : LayoutSkeleton
        {
                #region Constants
   
  @@ -797,7 +797,7 @@
                public PatternLayout(string pattern) 
                {
                        // By default we do not process the exception
  -                     SetIgnoresException(true);
  +                     IgnoresException = true;
   
                        m_pattern = pattern;
   
  @@ -871,18 +871,6 @@
   
                #endregion
   
  -             /// <summary>
  -             /// The <see cref="LayoutSkeleton.IgnoresException"/> value for 
this layout
  -             /// </summary>
  -             /// <remarks>
  -             /// The default value is <c>true</c>, i.e. that this layout 
ignores the exception
  -             /// </remarks>
  -             new public bool IgnoresException
  -             {
  -                     get { return base.IgnoresException; }
  -                     set { base.SetIgnoresException(value); }
  -             }
  -
                #region Override implementation of LayoutSkeleton
   
                /// <summary>
  @@ -971,67 +959,6 @@
                                get { return m_type; }
                                set { m_type = value; }
                        }
  -             }
  -     }
  -
  -     /// <summary>
  -     /// Implementation shim class used by the PatternLayout
  -     /// </summary>
  -     /// <remarks>
  -     /// <para>
  -     /// This class is used to allow the <see cref="PatternLayout"/> to
  -     /// provide a new implementation of the <see 
cref="PatternLayout.IgnoresException"/>
  -     /// property that has a setter as well as the getter. This class
  -     /// is needed because there muse be an implementation of the 
  -     /// <see cref="LayoutSkeleton.IgnoresException"/> property before
  -     /// it can be hidden by a new property.
  -     /// </para>
  -     /// <para>
  -     /// This class stores the value and overrides the base class required 
property.
  -     /// </para>
  -     /// </remarks>
  -     /// <exclude/>
  -     public abstract class PatternLayoutShim : LayoutSkeleton
  -     {
  -             #region Member Variables
  -     
  -             /// <summary>
  -             /// Store IgnoresException state
  -             /// </summary>
  -             private bool m_ignoresException;
  -
  -             #endregion
  -
  -             #region Constructors
  -
  -             /// <summary>
  -             /// Default protected constructor
  -             /// </summary>
  -             protected PatternLayoutShim()
  -             {
  -             }
  -
  -             #endregion
  -     
  -             #region Override implementation of LayoutSkeleton
  -
  -             /// <summary>
  -             /// The <see cref="LayoutSkeleton.IgnoresException"/> value
  -             /// </summary>
  -             override public bool IgnoresException
  -             {
  -                     get { return m_ignoresException; }
  -             }
  -
  -             #endregion
  -
  -             /// <summary>
  -             /// Set the <see cref="IgnoresException"/> value
  -             /// </summary>
  -             /// <param name="value">the value to set</param>
  -             protected void SetIgnoresException(bool value)
  -             {
  -                     m_ignoresException = value;
                }
        }
   }
  
  
  
  1.5       +1 -9      logging-log4net/src/Layout/SimpleLayout.cs
  
  Index: SimpleLayout.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Layout/SimpleLayout.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SimpleLayout.cs   30 May 2004 11:23:01 -0000      1.4
  +++ SimpleLayout.cs   10 Sep 2004 19:40:23 -0000      1.5
  @@ -48,6 +48,7 @@
                /// </remarks>
                public SimpleLayout()
                {
  +                     IgnoresException = true;
                }
   
                #endregion
  @@ -78,15 +79,6 @@
                #endregion
   
                #region Override implementation of LayoutSkeleton
  -
  -             /// <summary>
  -             /// The SimpleLayout does not handle the exception contained 
within
  -             /// LoggingEvents. Thus, it returns <c>true</c>.
  -             /// </summary>
  -             override public bool IgnoresException
  -             {
  -                     get { return true; }
  -             }
   
                /// <summary>
                /// Produces a formatted string.
  
  
  
  1.4       +2 -9      logging-log4net/src/Layout/XMLLayoutBase.cs
  
  Index: XMLLayoutBase.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Layout/XMLLayoutBase.cs,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XMLLayoutBase.cs  30 May 2004 11:10:07 -0000      1.3
  +++ XMLLayoutBase.cs  10 Sep 2004 19:40:24 -0000      1.4
  @@ -50,6 +50,7 @@
                /// </summary>
                protected XmlLayoutBase() : this(false)
                {
  +                     IgnoresException = false;
                }
   
                /// <summary>
  @@ -71,6 +72,7 @@
                /// </remarks>
                protected XmlLayoutBase(bool locationInfo)
                {
  +                     IgnoresException = false;
                        m_locationInfo = locationInfo;
                }
   
  @@ -140,15 +142,6 @@
                override public string ContentType
                {
                        get { return "text/xml"; }
  -             }
  -
  -             /// <summary>
  -             /// The XMLLayout does handle the exception contained within
  -             /// LoggingEvents. Thus, it returns <c>false</c>.
  -             /// </summary>
  -             override public bool IgnoresException
  -             {
  -                     get { return false; }
                }
   
                /// <summary>
  
  
  

Reply via email to