Log4j logging with Testng

1,473 views
Skip to first unread message

Mansi

unread,
Aug 28, 2017, 4:06:34 AM8/28/17
to Selenium Users
Hi Guys,

I am trying use log4j logging with testng but unable to succeed in it.


    public class PlaceAnOrder{

   WebDriver driver;
   static String strOrderRefNo;
   Logger log=Logger.getLogger(PlaceAnOrder.class);
    
        @Test
    public void PlaceOrder() throws Exception{

                PropertyConfigurator.configure("log4j.properties");
           Reporter.log("Reporter log started",true);
           Reporter.log("Login was successful. Moving to next step",true);
           log.info("Info message");

    }
}

Getting the below error -
log4j:ERROR Could not read configuration file [log4j.properties].
java.io.FileNotFoundException: log4j.properties (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:372)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:403)
at TestScripts.PlaceAnOrder.PlaceOrder(PlaceAnOrder.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:663)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:849)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1157)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:771)
at org.testng.TestRunner.run(TestRunner.java:621)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:357)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310)
at org.testng.SuiteRunner.run(SuiteRunner.java:259)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1200)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1125)
at org.testng.TestNG.run(TestNG.java:1033)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
log4j:ERROR Ignoring configuration file [log4j.properties].


@Mansi - Report.log works perfectly for log4j(log.info) logging doesnot work. Could somebody help?

QuPi BigBang

unread,
Aug 29, 2017, 11:26:46 PM8/29/17
to Selenium Users
Hi Mansi,

It appears you missed "log4j.properties" file in your source folder. (see attached photo)

File content should be:

# Root logger option
log4j.rootLogger=DEBUG, stdout, file


# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File="D:\\log4j-application.log"
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern= #%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n


Hope this help.
mansi.png
Reply all
Reply to author
Forward
0 new messages