nicko       2005/05/11 05:44:53

  Modified:    src/Filter LevelMatchFilter.cs
  Log:
  Fix for LOG4NET-29 LevelMatchFilter should return Neutral when no match is 
found
  
  Revision  Changes    Path
  1.6       +7 -19     logging-log4net/src/Filter/LevelMatchFilter.cs
  
  Index: LevelMatchFilter.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Filter/LevelMatchFilter.cs,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LevelMatchFilter.cs       17 Jan 2005 20:18:44 -0000      1.5
  +++ LevelMatchFilter.cs       11 May 2005 12:44:53 -0000      1.6
  @@ -35,7 +35,8 @@
        /// <see cref="LoggingEvent"/>, then the <see cref="Decide"/> method 
returns <see cref="FilterDecision.Accept"/> in 

        /// case the <see cref="AcceptOnMatch"/> option value is set

        /// to <c>true</c>, if it is <c>false</c> then 

  -     /// <see cref="FilterDecision.Deny"/> is returned.

  +     /// <see cref="FilterDecision.Deny"/> is returned. If the <see 
cref="Level"/> does not match then

  +     /// the result will be <see cref="FilterDecision.Neutral"/>.

        /// </para>

        /// </remarks>

        /// <author>Nicko Cadell</author>

  @@ -117,7 +118,7 @@
                /// value of <see cref="AcceptOnMatch"/>. If it is true then

                /// the function will return <see 
cref="FilterDecision.Accept"/>, it it is false then it

                /// will return <see cref="FilterDecision.Deny"/>. If the <see 
cref="Level"/> does not match then

  -             /// the result will be the opposite of when it does match.

  +             /// the result will be <see cref="FilterDecision.Neutral"/>.

                /// </para>

                /// </remarks>

                override public FilterDecision Decide(LoggingEvent 
loggingEvent) 

  @@ -127,25 +128,12 @@
                                throw new ArgumentNullException("loggingEvent");

                        }

   

  -                     if (m_levelToMatch == null) 

  +                     if (m_levelToMatch != null && m_levelToMatch == 
loggingEvent.Level) 

                        {

  -                             return FilterDecision.Neutral;

  -                     }

  -    

  -                     bool matchOccurred = false;

  -                     if (m_levelToMatch == loggingEvent.Level) 

  -                     {

  -                             matchOccurred = true;

  -                     }

  -

  -                     if (m_acceptOnMatch ^ matchOccurred) 

  -                     {

  -                             return FilterDecision.Deny;

  -                     } 

  -                     else 

  -                     {

  -                             return FilterDecision.Accept;

  +                             // Found match

  +                             return m_acceptOnMatch ? FilterDecision.Accept 
: FilterDecision.Deny;

                        }

  +                     return FilterDecision.Neutral;

                }

   

                #endregion

  
  
  

Reply via email to