16
16
*/
17
17
package org .apache .logging .log4j .jul .test ;
18
18
19
- import static org .hamcrest .Matchers .equalTo ;
20
- import static org .hamcrest .Matchers .is ;
21
- import static org .junit .Assert .assertEquals ;
22
- import static org .junit .Assert .assertNotNull ;
23
- import static org .junit .Assert .assertThat ;
24
- import static org .junit .Assert .assertTrue ;
19
+ import static org .assertj .core .api .Assertions .assertThat ;
25
20
26
21
import java .util .logging .Level ;
27
22
import java .util .logging .Logger ;
23
+ import org .apache .logging .log4j .core .LoggerContext ;
28
24
import org .apache .logging .log4j .core .test .appender .ListAppender ;
29
25
import org .apache .logging .log4j .jul .LogManager ;
30
26
import org .apache .logging .log4j .util .Strings ;
36
32
37
33
public class CoreLoggerTest extends AbstractLoggerTest {
38
34
35
+ private static final Level [] LEVELS = new Level [] {
36
+ Level .ALL ,
37
+ Level .FINEST ,
38
+ Level .FINER ,
39
+ Level .FINE ,
40
+ Level .CONFIG ,
41
+ Level .INFO ,
42
+ Level .WARNING ,
43
+ Level .SEVERE ,
44
+ Level .OFF
45
+ };
46
+
47
+ private static Level getEffectiveLevel (final Logger logger ) {
48
+ for (final Level level : LEVELS ) {
49
+ if (logger .isLoggable (level )) {
50
+ return level ;
51
+ }
52
+ }
53
+ throw new RuntimeException ("No level is enabled." );
54
+ }
55
+
39
56
@ BeforeClass
40
57
public static void setUpClass () {
41
58
System .setProperty ("java.util.logging.manager" , LogManager .class .getName ());
@@ -47,21 +64,23 @@ public static void tearDownClass() {
47
64
}
48
65
49
66
@ Before
50
- public void setUp () throws Exception {
51
- LogManager .getLogManager ().reset ();
67
+ public void setUp () {
68
+ // Reset the logger context
69
+ LoggerContext .getContext (false ).reconfigure ();
70
+
52
71
logger = Logger .getLogger (LOGGER_NAME );
53
72
logger .setFilter (null );
54
- assertThat (logger .getLevel (), equalTo (Level .FINE ) );
73
+ assertThat (logger .getLevel ()). isEqualTo (Level .FINE );
55
74
eventAppender = ListAppender .getListAppender ("TestAppender" );
56
75
flowAppender = ListAppender .getListAppender ("FlowAppender" );
57
76
stringAppender = ListAppender .getListAppender ("StringAppender" );
58
- assertNotNull (eventAppender );
59
- assertNotNull (flowAppender );
60
- assertNotNull (stringAppender );
77
+ assertThat (eventAppender ). isNotNull ( );
78
+ assertThat (flowAppender ). isNotNull ( );
79
+ assertThat (stringAppender ). isNotNull ( );
61
80
}
62
81
63
82
@ After
64
- public void tearDown () throws Exception {
83
+ public void tearDown () {
65
84
if (eventAppender != null ) {
66
85
eventAppender .clear ();
67
86
}
@@ -74,82 +93,57 @@ public void tearDown() throws Exception {
74
93
}
75
94
76
95
@ Test
77
- public void testRootSetLevelToNull () throws Exception {
96
+ public void testRootSetLevelToNull () {
78
97
final Logger rootLogger = Logger .getLogger (Strings .EMPTY );
79
- assertThat (rootLogger .getLevel (), equalTo (Level .SEVERE ) );
80
- assertThat (rootLogger . isLoggable (Level .SEVERE ), is ( true ) );
98
+ assertThat (rootLogger .getLevel ()). isEqualTo (Level .SEVERE );
99
+ assertThat (getEffectiveLevel ( rootLogger )). isEqualTo (Level .SEVERE );
81
100
// null test
82
101
rootLogger .setLevel (null );
83
- assertThat (rootLogger .getLevel (), equalTo ( null ) );
84
- assertThat (rootLogger . isLoggable (Level .SEVERE ), is ( true ) );
102
+ assertThat (rootLogger .getLevel ()). isNull ( );
103
+ assertThat (getEffectiveLevel ( rootLogger )). isEqualTo (Level .SEVERE );
85
104
// now go back to a different one
86
105
rootLogger .setLevel (Level .INFO );
87
- assertThat (rootLogger .getLevel (), equalTo (Level .INFO ) );
88
- assertThat (rootLogger . isLoggable (Level .FINE ), is ( false ) );
106
+ assertThat (rootLogger .getLevel ()). isEqualTo (Level .INFO );
107
+ assertThat (getEffectiveLevel ( rootLogger )). isEqualTo (Level .INFO );
89
108
}
90
109
91
110
@ Test
92
- public void testSetLevel () throws Exception {
93
- final Logger childLogger = Logger .getLogger (LOGGER_NAME + ".Child" );
94
- assertThat (childLogger .getLevel (), equalTo (Level .FINE ));
95
- logger .setLevel (Level .SEVERE );
96
- assertThat (childLogger .getLevel (), equalTo (Level .FINE ));
97
- assertThat (logger .getLevel (), equalTo (Level .SEVERE ));
98
- logger .setLevel (Level .FINER );
99
- assertThat (logger .getLevel (), equalTo (Level .FINER ));
100
- logger .setLevel (Level .FINE );
101
- assertThat (logger .getLevel (), equalTo (Level .FINE ));
102
- assertThat (childLogger .getLevel (), equalTo (Level .FINE ));
103
- assertThat (childLogger .isLoggable (Level .ALL ), is (false ));
104
- }
105
-
106
- @ Test
107
- public void testSetLevelIssue2281 () {
111
+ public void testSetLevel () {
108
112
final Logger a = Logger .getLogger ("a" );
109
113
final Logger a_b = Logger .getLogger ("a.b" );
110
114
final Logger a_b_c = Logger .getLogger ("a.b.c" );
111
115
// test default for this test
112
- assertEquals ( Level . INFO , a .getLevel ());
113
- assertEquals ( Level . INFO , a_b .getLevel ());
114
- assertEquals ( Level . INFO , a_b_c .getLevel ());
116
+ assertThat ( a .getLevel ()). isNull ( );
117
+ assertThat ( a_b .getLevel ()). isNull ( );
118
+ assertThat ( a_b_c .getLevel ()). isNull ( );
115
119
// all levels
116
- final Level [] levels = new Level [] {
117
- Level .OFF ,
118
- Level .SEVERE ,
119
- Level .WARNING ,
120
- Level .INFO ,
121
- Level .CONFIG ,
122
- Level .FINE ,
123
- Level .FINER ,
124
- Level .FINEST ,
125
- Level .ALL
126
- };
127
- for (int i = 0 ; i < levels .length - 1 ; i ++) {
128
- final Level level = levels [i ];
129
- final Level nextLevel = levels [i + 1 ];
120
+ for (final Level level : LEVELS ) {
130
121
a .setLevel (level );
131
- assertEquals (level , a .getLevel ());
132
- assertTrue (a .isLoggable (level ) && !a .isLoggable (nextLevel ));
133
- assertTrue (a_b .isLoggable (level ) && !a .isLoggable (nextLevel ));
134
- assertTrue (a_b_c .isLoggable (level ) && !a .isLoggable (nextLevel ));
122
+ assertThat (a .getLevel ()).isEqualTo (level );
123
+ assertThat (getEffectiveLevel (a )).isEqualTo (level );
124
+ assertThat (a_b .getLevel ()).isNull ();
125
+ assertThat (getEffectiveLevel (a_b )).isEqualTo (level );
126
+ assertThat (a_b_c .getLevel ()).isNull ();
127
+ assertThat (getEffectiveLevel (a_b_c )).isEqualTo (level );
135
128
}
136
129
}
137
130
138
131
@ Test
139
- public void testSetLevelToNull () throws Exception {
132
+ public void testSetLevelToNull () {
140
133
final Logger childLogger = Logger .getLogger (LOGGER_NAME + ".NullChild" );
141
- assertThat (childLogger .getLevel (), equalTo (Level .FINE ));
142
- assertThat (childLogger .isLoggable (Level .FINE ), is (true ));
134
+ assertThat (childLogger .getLevel ()).isNull ();
135
+ assertThat (getEffectiveLevel (childLogger )).isEqualTo (Level .FINE );
136
+ // Set explicit level
143
137
childLogger .setLevel (Level .SEVERE );
144
- assertThat (childLogger .getLevel (), equalTo (Level .SEVERE ) );
145
- assertThat (childLogger . isLoggable (Level .FINE ), is ( false ) );
146
- // null test
138
+ assertThat (childLogger .getLevel ()). isEqualTo (Level .SEVERE );
139
+ assertThat (getEffectiveLevel ( childLogger )). isEqualTo (Level .SEVERE );
140
+ // Set null level
147
141
childLogger .setLevel (null );
148
- assertThat (childLogger .getLevel (), equalTo ( null ) );
149
- assertThat (childLogger . isLoggable (Level .FINE ), is ( true ) );
142
+ assertThat (childLogger .getLevel ()). isNull ( );
143
+ assertThat (getEffectiveLevel ( childLogger )). isEqualTo (Level .FINE );
150
144
// now go back
151
145
childLogger .setLevel (Level .SEVERE );
152
- assertThat (childLogger .getLevel (), equalTo (Level .SEVERE ) );
153
- assertThat (childLogger . isLoggable (Level .FINE ), is ( false ) );
146
+ assertThat (childLogger .getLevel ()). isEqualTo (Level .SEVERE );
147
+ assertThat (getEffectiveLevel ( childLogger )). isEqualTo (Level .SEVERE );
154
148
}
155
149
}
0 commit comments