2020*/
2121
2222using System ;
23+ using System . Runtime . CompilerServices ;
24+ using System . Threading ;
2325using log4net . Appender ;
2426using log4net . Core ;
2527using log4net . Tests . Appender ;
@@ -53,14 +55,16 @@ public void SetupRepository()
5355 m_bufferingForwardingAppender . Threshold = Level . All ;
5456 }
5557
58+ private ILogger GetLogger ( [ CallerMemberName ] string name = "" ) => m_hierarchy . GetLogger ( name ) ;
59+
5660 [ Test ]
5761 public void TestLevelEvaluator ( )
5862 {
5963 m_bufferingForwardingAppender . Evaluator = new LevelEvaluator ( Level . Info ) ;
6064 m_bufferingForwardingAppender . ActivateOptions ( ) ;
6165 log4net . Config . BasicConfigurator . Configure ( m_hierarchy , m_bufferingForwardingAppender ) ;
6266
63- ILogger logger = m_hierarchy . GetLogger ( "TestLevelEvaluator" ) ;
67+ ILogger logger = GetLogger ( ) ;
6468
6569 logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Debug message logged" , null ) ;
6670 logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Debug message logged" , null ) ;
@@ -69,6 +73,44 @@ public void TestLevelEvaluator()
6973 logger . Log ( typeof ( EvaluatorTest ) , Level . Info , "Info message logged" , null ) ;
7074 Assert . AreEqual ( 3 , m_countingAppender . Counter , "Test 3 events flushed on Info message." ) ;
7175 }
76+
77+ [ Test ]
78+ public void TestTimeEvaluatorWhenElapsed ( )
79+ {
80+ m_bufferingForwardingAppender . Evaluator = new TimeEvaluator ( 1 ) ;
81+ m_bufferingForwardingAppender . ActivateOptions ( ) ;
82+ log4net . Config . BasicConfigurator . Configure ( m_hierarchy , m_bufferingForwardingAppender ) ;
83+
84+ ILogger logger = GetLogger ( ) ;
85+
86+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Debug message logged" , null ) ;
87+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Debug message logged" , null ) ;
88+ Assert . AreEqual ( 0 , m_countingAppender . Counter , "Test 2 events buffered" ) ;
89+
90+ Thread . Sleep ( 1000 ) ;
91+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Info message logged" , null ) ;
92+ Assert . AreEqual ( 3 , m_countingAppender . Counter , "Test 3 events flushed on Info message." ) ;
93+ }
94+
95+ [ Test ]
96+ public void TestTimeEvaluatorWhenBufferFull ( )
97+ {
98+ m_bufferingForwardingAppender . Evaluator = new TimeEvaluator ( 10 ) ;
99+ m_bufferingForwardingAppender . ActivateOptions ( ) ;
100+ log4net . Config . BasicConfigurator . Configure ( m_hierarchy , m_bufferingForwardingAppender ) ;
101+
102+ ILogger logger = GetLogger ( ) ;
103+
104+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Debug message logged" , null ) ;
105+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Debug message logged" , null ) ;
106+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Debug message logged" , null ) ;
107+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Debug message logged" , null ) ;
108+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Info message logged" , null ) ;
109+ Assert . AreEqual ( 0 , m_countingAppender . Counter , "Test 5 events buffered" ) ;
110+
111+ logger . Log ( typeof ( EvaluatorTest ) , Level . Debug , "Info message logged" , null ) ;
112+ Assert . AreEqual ( 6 , m_countingAppender . Counter , "Test 6 events flushed on Info message." ) ;
113+ }
72114
73115 [ Test ]
74116 public void TestExceptionEvaluator ( )
@@ -77,7 +119,7 @@ public void TestExceptionEvaluator()
77119 m_bufferingForwardingAppender . ActivateOptions ( ) ;
78120 log4net . Config . BasicConfigurator . Configure ( m_hierarchy , m_bufferingForwardingAppender ) ;
79121
80- ILogger logger = m_hierarchy . GetLogger ( "TestExceptionEvaluator" ) ;
122+ ILogger logger = GetLogger ( ) ;
81123
82124 logger . Log ( typeof ( EvaluatorTest ) , Level . Warn , "Warn message logged" , null ) ;
83125 logger . Log ( typeof ( EvaluatorTest ) , Level . Warn , "Warn message logged" , null ) ;
@@ -94,7 +136,7 @@ public void TestExceptionEvaluatorTriggerOnSubClass()
94136 m_bufferingForwardingAppender . ActivateOptions ( ) ;
95137 log4net . Config . BasicConfigurator . Configure ( m_hierarchy , m_bufferingForwardingAppender ) ;
96138
97- ILogger logger = m_hierarchy . GetLogger ( "TestExceptionEvaluatorTriggerOnSubClass" ) ;
139+ ILogger logger = GetLogger ( ) ;
98140
99141 logger . Log ( typeof ( EvaluatorTest ) , Level . Warn , "Warn message logged" , null ) ;
100142 logger . Log ( typeof ( EvaluatorTest ) , Level . Warn , "Warn message logged" , null ) ;
@@ -111,7 +153,7 @@ public void TestExceptionEvaluatorNoTriggerOnSubClass()
111153 m_bufferingForwardingAppender . ActivateOptions ( ) ;
112154 log4net . Config . BasicConfigurator . Configure ( m_hierarchy , m_bufferingForwardingAppender ) ;
113155
114- ILogger logger = m_hierarchy . GetLogger ( "TestExceptionEvaluatorNoTriggerOnSubClass" ) ;
156+ ILogger logger = GetLogger ( ) ;
115157
116158 logger . Log ( typeof ( EvaluatorTest ) , Level . Warn , "Warn message logged" , null ) ;
117159 logger . Log ( typeof ( EvaluatorTest ) , Level . Warn , "Warn message logged" , null ) ;
@@ -129,7 +171,7 @@ public void TestInvalidExceptionEvaluator()
129171 m_bufferingForwardingAppender . ActivateOptions ( ) ;
130172 log4net . Config . BasicConfigurator . Configure ( m_hierarchy , m_bufferingForwardingAppender ) ;
131173
132- ILogger logger = m_hierarchy . GetLogger ( "TestExceptionEvaluatorNoTriggerOnSubClass" ) ;
174+ ILogger logger = GetLogger ( ) ;
133175
134176 logger . Log ( typeof ( EvaluatorTest ) , Level . Warn , "Warn message logged" , null ) ;
135177 logger . Log ( typeof ( EvaluatorTest ) , Level . Warn , "Warn message logged" , null ) ;
0 commit comments