11package aquality .selenium .logger ;
22
33import 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 ;
511import org .testng .annotations .AfterMethod ;
612import org .testng .annotations .BeforeGroups ;
713import org .testng .annotations .BeforeMethod ;
@@ -22,22 +28,23 @@ public class LoggerTests {
2228 private final static String testMessage = "test message" ;
2329 private final static String testExceptionText = "test exception" ;
2430 private final static String log4jFieldName = "log4J" ;
25- private org .apache .log4j .Logger log4j ;
31+ private org .apache .logging . log4j . core .Logger log4j ;
2632 private Appender appender ;
2733 private File appenderFile ;
2834
2935 @ BeforeMethod
3036 private void addMessagesAppender () throws IOException {
3137 appenderFile = getRandomAppenderFile ();
3238 appender = getFileAppender (appenderFile );
33- Logger .getInstance ().addAppender (appender );
39+ appender .start ();
40+ LoggerContext .getContext (false ).getRootLogger ().addAppender (appender );
3441 }
3542
3643 @ BeforeGroups ("messages" )
3744 private void initializeLog4jField () throws NoSuchFieldException , IllegalAccessException {
3845 Field log4jField = Logger .class .getDeclaredField (log4jFieldName );
3946 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 ();
4148 }
4249
4350 @ Test
@@ -54,109 +61,112 @@ public void testShouldBePossibleToAddAppender() throws IOException {
5461
5562 @ Test
5663 public void testShouldBePossibleToRemoveAppender () throws IOException {
57- Logger .getInstance ().addAppender (appender ).removeAppender (appender ).info (testMessage );
64+ appender .stop ();
65+ LoggerContext .getContext (false ).getRootLogger ().removeAppender (appender );
5866 if (appenderFile .exists ()){
5967 assertFalse (isFileContainsText (appenderFile , testMessage ), String .format ("New appender is not removed from log4j. File '%s' is not empty." , appenderFile .getPath ()));
6068 }
6169 }
6270
6371 @ Test (groups = "messages" )
6472 public void testInfoMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
65- log4j . setLevel (Level .FATAL );
73+ Configurator . setRootLevel (Level .FATAL );
6674 Logger .getInstance ().info (testMessage );
6775 assertFalse (isFileContainsText (appenderFile , testMessage ));
6876
69- log4j . setLevel (Level .INFO );
77+ Configurator . setRootLevel (Level .INFO );
7078 Logger .getInstance ().info (testMessage );
7179 assertTrue (isFileContainsText (appenderFile , testMessage ));
7280 }
7381
7482 @ Test (groups = "messages" )
7583 public void testInfoMessageWithParametersShouldBeDisplayedAccordingToLogLevel () throws IOException {
76- log4j . setLevel (Level .FATAL );
84+ Configurator . setRootLevel (Level .FATAL );
7785 Logger .getInstance ().info ("%s" , testMessage );
7886 assertFalse (isFileContainsText (appenderFile , testMessage ));
7987
80- log4j . setLevel (Level .INFO );
88+ Configurator . setRootLevel (Level .INFO );
8189 Logger .getInstance ().info ("%s" , testMessage );
8290 assertTrue (isFileContainsText (appenderFile , testMessage ));
8391 }
8492
8593 @ Test (groups = "messages" )
8694 public void testDebugMessageWithParametersShouldBeDisplayedAccordingToLogLevel () throws IOException {
87- log4j . setLevel (Level .WARN );
95+ Configurator . setRootLevel (Level .WARN );
8896 Logger .getInstance ().debug ("%s" , testMessage );
8997 assertFalse (isFileContainsText (appenderFile , testMessage ));
9098
91- log4j . setLevel (Level .DEBUG );
99+ Configurator . setRootLevel (Level .DEBUG );
92100 Logger .getInstance ().debug ("%s" , testMessage );
93101 assertTrue (isFileContainsText (appenderFile , testMessage ));
94102 }
95103
96104 @ Test (groups = "messages" )
97105 public void testDebugMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
98- log4j . setLevel (Level .WARN );
106+ Configurator . setRootLevel (Level .WARN );
99107 Logger .getInstance ().debug (testMessage );
100108 assertFalse (isFileContainsText (appenderFile , testMessage ));
101109
102- log4j . setLevel (Level .DEBUG );
110+ Configurator . setRootLevel (Level .DEBUG );
103111 Logger .getInstance ().debug (testMessage );
104112 assertTrue (isFileContainsText (appenderFile , testMessage ));
105113 }
106114
107115 @ Test (groups = "messages" )
108116 public void testDebugMessageWithThrowableShouldBeDisplayedAccordingToLogLevel () throws IOException {
109- log4j . setLevel (Level .WARN );
117+ Configurator . setRootLevel (Level .WARN );
110118 Logger .getInstance ().debug (testMessage , new Exception (testExceptionText ));
111119 assertFalse (isFileContainsText (appenderFile , testMessage ));
112120 assertFalse (isFileContainsText (appenderFile , testExceptionText ));
113121
114- log4j . setLevel (Level .DEBUG );
122+ Configurator . setRootLevel (Level .DEBUG );
115123 Logger .getInstance ().debug (testMessage , new Exception (testExceptionText ));
116124 assertTrue (isFileContainsText (appenderFile , testMessage ));
117125 assertTrue (isFileContainsText (appenderFile , testExceptionText ));
118126 }
119127
120128 @ Test (groups = "messages" )
121129 public void testWarnMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
122- log4j . setLevel (Level .ERROR );
130+ Configurator . setRootLevel (Level .ERROR );
123131 Logger .getInstance ().warn (testMessage );
124132 assertFalse (isFileContainsText (appenderFile , testMessage ));
125133
126- log4j . setLevel (Level .WARN );
134+ Configurator . setRootLevel (Level .WARN );
127135 Logger .getInstance ().warn (testMessage );
128136 assertTrue (isFileContainsText (appenderFile , testMessage ));
129137 }
130138
131139 @ Test (groups = "messages" )
132140 public void testFatalMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
133- log4j . setLevel (Level .OFF );
141+ Configurator . setRootLevel (Level .OFF );
134142 Logger .getInstance ().fatal (testMessage , new Exception (testExceptionText ));
135143 assertFalse (isFileContainsText (appenderFile , testMessage ));
136144 assertFalse (isFileContainsText (appenderFile , testExceptionText ));
137145
138- log4j . setLevel (Level .FATAL );
146+ Configurator . setRootLevel (Level .FATAL );
139147 Logger .getInstance ().fatal (testMessage , new Exception (testExceptionText ));
140148 assertTrue (isFileContainsText (appenderFile , testMessage ));
141149 assertTrue (isFileContainsText (appenderFile , testExceptionText ));
142150 }
143151
144152 @ Test (groups = "messages" )
145153 public void testErrorMessageShouldBeDisplayedAccordingToLogLevel () throws IOException {
146- log4j . setLevel (Level .FATAL );
154+ Configurator . setRootLevel (Level .FATAL );
147155 Logger .getInstance ().error (testMessage );
148156 assertFalse (isFileContainsText (appenderFile , testMessage ));
149157
150- log4j . setLevel (Level .ERROR );
158+ Configurator . setRootLevel (Level .ERROR );
151159 Logger .getInstance ().error (testMessage );
152160 assertTrue (isFileContainsText (appenderFile , testMessage ));
153161 }
154162
155163 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 ();
160170 return fileAppender ;
161171 }
162172
0 commit comments