To log your application log to a log file by using log4j, you have to go through the following steps:
- Download latest jar of log4j.jar and add it to your project classpath.
- Create a log4j.properties file inside your source directory to define properties of your logger.
- To log your application log to a log file, you need to add the following code in the log4j.properties
- To know the usage of logger see the below code:
//In ConfigUtil.java private static Logger log = Logger.getLogger(ConfigUtil.class); // The below line is called inside static block log.info("Properties file loaded at '" + configLoc + "'"); //In BasePage.java protected static Logger log = Logger.getLogger(BasePage.class); // The below line is called inside setTimeout() method log.info("The timeout value is set to " + timeoutSeconds + " seconds."); //In DriverManager.java private static Logger log = Logger.getLogger(DriverManager.class); // The below line is called inside static block log.info("Driver location is set to '" + driverLoc + "'");
-
You will get your application log in the log file(which you have specified in your log4j.properties, in this example i have specified "logs/autoLog.log" file) as shown in the below sample:
2013-09-05 12:36:04 INFO (ConfigUtil.java:
:39) - Properties file loaded at '/Users/aksahu/MySpace/Web_Workspace/KnowledgeBase/config/config.properties' 2013-09-05 12:36:04 INFO (BasePage.java:setTimeout:155) - The timeout value is set to 60 seconds. 2013-09-05 12:36:04 INFO (DriverManager.java: :54) - Driver location is set to '/Users/aksahu/MySpace/Web_Workspace/CoreDriver/drivers/' 2013-09-05 12:36:04 INFO (DriverManager.java:getDriver:85) - initializing 'chrome' driver... 2013-09-05 12:36:15 INFO (BasePage.java:windowMaximize:101) - Maximizing the browser window. 2013-09-05 12:36:17 INFO (BasePage.java:openUrl:86) - Openning the url 'http://knowledgebase-wiki.appspot.com/' in the browser... 2013-09-05 12:36:23 INFO (BasePage.java:waitForPageToLoad:956) - Waiting for page to load... 2013-09-05 12:36:23 INFO (BasePage.java:typeByID:195) - Entering text 'java' to the element specified by id 'searchField' 2013-09-05 12:36:23 INFO (BasePage.java:clickByID:258) - Clicking on the element specified by id 'resultDiv0' 2013-09-05 12:36:23 INFO (BasePage.java:waitForElementLocatedByXpath:848) - Waiting for the element specified by xpath '//a[contains(text(),'[Go to page]')]' 2013-09-05 12:36:23 INFO (BasePage.java:clickByXpath:238) - Clicking on the element specified by xpath '//a[contains(text(),'[Go to page]')]' 2013-09-05 12:36:24 INFO (BasePage.java:waitForPageToLoad:956) - Waiting for page to load... 2013-09-05 12:36:24 INFO (BasePage.java:isTextPresent:807) - Checking for the text 'Installing Java' in the page 2013-09-05 12:36:24 INFO (BasePage.java:isTextPresent:807) - Checking for the text 'java' in the page 2013-09-05 12:36:24 INFO (BasePage.java:quitBrowser:582) - Closing all the instances of the browser 'chrome'
################################################################# ##### Application Logs to be printed in the log file ##### ################################################################# log4j.rootLogger= WARN, FILE_APPENDER # test appender daily rolling logs format log4j.appender.FILE_APPENDER=org.apache.log4j.DailyRollingFileAppender log4j.appender.FILE_APPENDER.File=logs/autoLog.log log4j.appender.FILE_APPENDER.DatePattern='.'yyyy-MM-dd log4j.appender.FILE_APPENDER.layout=org.apache.log4j.PatternLayout log4j.appender.FILE_APPENDER.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p (%F:%M:%L) - %m%n # test appender daily rolling logs for packages log4j.logger.com.myorg=DEBUG log4j.logger.com.myorg.core.util=FILE_APPENDER log4j.logger.com.myorg.core.page=FILE_APPENDER