1
1
package aquality .selenium .logger ;
2
2
3
3
import aquality .selenium .core .logging .Logger ;
4
- import org .apache .log4j .*;
4
+ import org .apache .logging .log4j .Level ;
5
+ import org .apache .logging .log4j .core .Appender ;
6
+ import org .apache .logging .log4j .core .Layout ;
7
+ import org .apache .logging .log4j .core .LoggerContext ;
8
+ import org .apache .logging .log4j .core .appender .FileAppender ;
9
+ import org .apache .logging .log4j .core .config .Configurator ;
10
+ import org .apache .logging .log4j .core .layout .PatternLayout ;
5
11
import org .testng .annotations .AfterMethod ;
6
12
import org .testng .annotations .BeforeGroups ;
7
13
import org .testng .annotations .BeforeMethod ;
@@ -22,22 +28,23 @@ public class LoggerTests {
22
28
private final static String testMessage = "test message" ;
23
29
private final static String testExceptionText = "test exception" ;
24
30
private final static String log4jFieldName = "log4J" ;
25
- private org .apache .log4j .Logger log4j ;
31
+ private org .apache .logging . log4j . core .Logger log4j ;
26
32
private Appender appender ;
27
33
private File appenderFile ;
28
34
29
35
@ BeforeMethod
30
36
private void addMessagesAppender () throws IOException {
31
37
appenderFile = getRandomAppenderFile ();
32
38
appender = getFileAppender (appenderFile );
33
- Logger .getInstance ().addAppender (appender );
39
+ appender .start ();
40
+ LoggerContext .getContext (false ).getRootLogger ().addAppender (appender );
34
41
}
35
42
36
43
@ BeforeGroups ("messages" )
37
44
private void initializeLog4jField () throws NoSuchFieldException , IllegalAccessException {
38
45
Field log4jField = Logger .class .getDeclaredField (log4jFieldName );
39
46
log4jField .setAccessible (true );
40
- log4j = ((ThreadLocal <org .apache .log4j .Logger >) log4jField .get (Logger .getInstance ())).get ();
47
+ log4j = ((ThreadLocal <org .apache .logging . log4j . core .Logger >) log4jField .get (Logger .getInstance ())).get ();
41
48
}
42
49
43
50
@ Test
@@ -54,109 +61,112 @@ public void testShouldBePossibleToAddAppender() throws IOException {
54
61
55
62
@ Test
56
63
public void testShouldBePossibleToRemoveAppender () throws IOException {
57
- Logger .getInstance ().addAppender (appender ).removeAppender (appender ).info (testMessage );
64
+ appender .stop ();
65
+ LoggerContext .getContext (false ).getRootLogger ().removeAppender (appender );
58
66
if (appenderFile .exists ()){
59
67
assertFalse (isFileContainsText (appenderFile , testMessage ), String .format ("New appender is not removed from log4j. File '%s' is not empty." , appenderFile .getPath ()));
60
68
}
61
69
}
62
70
63
71
@ Test (groups = "messages" )
64
72
public void testInfoMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
65
- log4j . setLevel (Level .FATAL );
73
+ Configurator . setRootLevel (Level .FATAL );
66
74
Logger .getInstance ().info (testMessage );
67
75
assertFalse (isFileContainsText (appenderFile , testMessage ));
68
76
69
- log4j . setLevel (Level .INFO );
77
+ Configurator . setRootLevel (Level .INFO );
70
78
Logger .getInstance ().info (testMessage );
71
79
assertTrue (isFileContainsText (appenderFile , testMessage ));
72
80
}
73
81
74
82
@ Test (groups = "messages" )
75
83
public void testInfoMessageWithParametersShouldBeDisplayedAccordingToLogLevel () throws IOException {
76
- log4j . setLevel (Level .FATAL );
84
+ Configurator . setRootLevel (Level .FATAL );
77
85
Logger .getInstance ().info ("%s" , testMessage );
78
86
assertFalse (isFileContainsText (appenderFile , testMessage ));
79
87
80
- log4j . setLevel (Level .INFO );
88
+ Configurator . setRootLevel (Level .INFO );
81
89
Logger .getInstance ().info ("%s" , testMessage );
82
90
assertTrue (isFileContainsText (appenderFile , testMessage ));
83
91
}
84
92
85
93
@ Test (groups = "messages" )
86
94
public void testDebugMessageWithParametersShouldBeDisplayedAccordingToLogLevel () throws IOException {
87
- log4j . setLevel (Level .WARN );
95
+ Configurator . setRootLevel (Level .WARN );
88
96
Logger .getInstance ().debug ("%s" , testMessage );
89
97
assertFalse (isFileContainsText (appenderFile , testMessage ));
90
98
91
- log4j . setLevel (Level .DEBUG );
99
+ Configurator . setRootLevel (Level .DEBUG );
92
100
Logger .getInstance ().debug ("%s" , testMessage );
93
101
assertTrue (isFileContainsText (appenderFile , testMessage ));
94
102
}
95
103
96
104
@ Test (groups = "messages" )
97
105
public void testDebugMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
98
- log4j . setLevel (Level .WARN );
106
+ Configurator . setRootLevel (Level .WARN );
99
107
Logger .getInstance ().debug (testMessage );
100
108
assertFalse (isFileContainsText (appenderFile , testMessage ));
101
109
102
- log4j . setLevel (Level .DEBUG );
110
+ Configurator . setRootLevel (Level .DEBUG );
103
111
Logger .getInstance ().debug (testMessage );
104
112
assertTrue (isFileContainsText (appenderFile , testMessage ));
105
113
}
106
114
107
115
@ Test (groups = "messages" )
108
116
public void testDebugMessageWithThrowableShouldBeDisplayedAccordingToLogLevel () throws IOException {
109
- log4j . setLevel (Level .WARN );
117
+ Configurator . setRootLevel (Level .WARN );
110
118
Logger .getInstance ().debug (testMessage , new Exception (testExceptionText ));
111
119
assertFalse (isFileContainsText (appenderFile , testMessage ));
112
120
assertFalse (isFileContainsText (appenderFile , testExceptionText ));
113
121
114
- log4j . setLevel (Level .DEBUG );
122
+ Configurator . setRootLevel (Level .DEBUG );
115
123
Logger .getInstance ().debug (testMessage , new Exception (testExceptionText ));
116
124
assertTrue (isFileContainsText (appenderFile , testMessage ));
117
125
assertTrue (isFileContainsText (appenderFile , testExceptionText ));
118
126
}
119
127
120
128
@ Test (groups = "messages" )
121
129
public void testWarnMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
122
- log4j . setLevel (Level .ERROR );
130
+ Configurator . setRootLevel (Level .ERROR );
123
131
Logger .getInstance ().warn (testMessage );
124
132
assertFalse (isFileContainsText (appenderFile , testMessage ));
125
133
126
- log4j . setLevel (Level .WARN );
134
+ Configurator . setRootLevel (Level .WARN );
127
135
Logger .getInstance ().warn (testMessage );
128
136
assertTrue (isFileContainsText (appenderFile , testMessage ));
129
137
}
130
138
131
139
@ Test (groups = "messages" )
132
140
public void testFatalMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
133
- log4j . setLevel (Level .OFF );
141
+ Configurator . setRootLevel (Level .OFF );
134
142
Logger .getInstance ().fatal (testMessage , new Exception (testExceptionText ));
135
143
assertFalse (isFileContainsText (appenderFile , testMessage ));
136
144
assertFalse (isFileContainsText (appenderFile , testExceptionText ));
137
145
138
- log4j . setLevel (Level .FATAL );
146
+ Configurator . setRootLevel (Level .FATAL );
139
147
Logger .getInstance ().fatal (testMessage , new Exception (testExceptionText ));
140
148
assertTrue (isFileContainsText (appenderFile , testMessage ));
141
149
assertTrue (isFileContainsText (appenderFile , testExceptionText ));
142
150
}
143
151
144
152
@ Test (groups = "messages" )
145
153
public void testErrorMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
146
- log4j . setLevel (Level .FATAL );
154
+ Configurator . setRootLevel (Level .FATAL );
147
155
Logger .getInstance ().error (testMessage );
148
156
assertFalse (isFileContainsText (appenderFile , testMessage ));
149
157
150
- log4j . setLevel (Level .ERROR );
158
+ Configurator . setRootLevel (Level .ERROR );
151
159
Logger .getInstance ().error (testMessage );
152
160
assertTrue (isFileContainsText (appenderFile , testMessage ));
153
161
}
154
162
155
163
private Appender getFileAppender (File file ) throws IOException {
156
- Layout layout = new PatternLayout ("%m%n" );
157
- RollingFileAppender fileAppender = new RollingFileAppender (layout , file .getPath ());
158
- fileAppender .setName ("test" );
159
- fileAppender .setAppend (true );
164
+ Layout layout = PatternLayout .newBuilder ().withPattern ("%m%n" ).build ();
165
+ FileAppender fileAppender = FileAppender .newBuilder ().setName ("test" )
166
+ .setLayout (layout )
167
+ .withFileName (file .getPath ())
168
+ .withAppend (true )
169
+ .build ();
160
170
return fileAppender ;
161
171
}
162
172
0 commit comments