17
17
import ch .qos .logback .classic .LoggerContext ;
18
18
import ch .qos .logback .classic .blackbox .BlackboxClassicTestConstants ;
19
19
import ch .qos .logback .classic .joran .JoranConfigurator ;
20
+ import ch .qos .logback .classic .sift .SiftingAppender ;
20
21
import ch .qos .logback .classic .spi .ILoggingEvent ;
22
+ import ch .qos .logback .core .Appender ;
21
23
import ch .qos .logback .core .ConsoleAppender ;
22
24
import ch .qos .logback .core .FileAppender ;
23
25
import ch .qos .logback .core .joran .spi .JoranException ;
24
26
import ch .qos .logback .core .read .ListAppender ;
27
+ import ch .qos .logback .core .sift .AppenderTracker ;
25
28
import ch .qos .logback .core .status .StatusUtil ;
26
29
import ch .qos .logback .core .testUtil .CoreTestConstants ;
27
30
import ch .qos .logback .core .testUtil .RandomUtil ;
33
36
import java .io .IOException ;
34
37
import java .net .InetAddress ;
35
38
import java .net .UnknownHostException ;
39
+ import java .util .List ;
36
40
41
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
37
42
import static org .junit .jupiter .api .Assertions .assertNotNull ;
38
43
import static org .junit .jupiter .api .Assertions .assertNull ;
39
44
import static org .junit .jupiter .api .Assertions .assertTrue ;
@@ -43,6 +48,8 @@ public class ConditionalTest {
43
48
LoggerContext context = new LoggerContext ();
44
49
Logger root = context .getLogger (Logger .ROOT_LOGGER_NAME );
45
50
51
+ Logger logger = context .getLogger (this .getClass ().getName ());
52
+
46
53
StatusUtil checker = new StatusUtil (context );
47
54
int diff = RandomUtil .getPositiveInt ();
48
55
String randomOutputDir = CoreTestConstants .OUTPUT_DIR_PREFIX + diff + "/" ;
@@ -142,4 +149,24 @@ public void conditionalInclusionWithInexistentFile() throws JoranException, IOEx
142
149
assertTrue (checker .isErrorFree (0 ));
143
150
}
144
151
152
+ private AppenderTracker <ILoggingEvent > getAppenderTracker () {
153
+ SiftingAppender ha = (SiftingAppender ) root .getAppender ("SIFT" );
154
+ return ha .getAppenderTracker ();
155
+ }
156
+
157
+ // see also https://jira.qos.ch/browse/LOGBACK-1713
158
+ @ Test
159
+ public void nestedWithinIfThen () throws JoranException {
160
+ configure (BlackboxClassicTestConstants .JORAN_INPUT_PREFIX + "conditional/siftNestedWithinIfThen.xml" );
161
+ StatusPrinter .print (context );
162
+ String msg = "nestedWithinIfThen" ;
163
+ logger .debug (msg );
164
+ Appender <ILoggingEvent > appender = getAppenderTracker ().find ("ifThenDefault" );
165
+ assertNotNull (appender );
166
+ ListAppender <ILoggingEvent > listAppender = (ListAppender <ILoggingEvent >) appender ;
167
+ List <ILoggingEvent > eventList = listAppender .list ;
168
+ assertEquals (1 , listAppender .list .size ());
169
+ assertEquals (msg , eventList .get (0 ).getMessage ());
170
+ checker .isWarningOrErrorFree (0 );
171
+ }
145
172
}
0 commit comments