简体   繁体   中英

Reusing Log4j instance across different packages

I am working on BDD test automation. Initially I have started using log4j logger in StepDefs ie using below constructor in BaseTestClass class which is extended by other StepDef classes.

    public BaseTestClass(){
    logger = Logger.getLogger(this.getClass());
    PropertyConfigurator.configure("Log4j.properties");
}

Now, at Page Object level (ie in the different package & class hierarchy ), I would like to start using log4j logger. Could I reuse the same instance? How could I achieve this?

Thanks

    log4j.rootLogger=INFO,CONSOLE,R,HTML,TTCC

#// Here we define the appender
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.TTCC=org.apache.log4j.RollingFileAppender
log4j.appender.HTML=org.apache.log4j.FileAppender
log4j.appender.DEBUG=org.apache.log4j.EnhancedThrowableRenderer


#// Here we define log file location
log4j.appender.R.File=./log/testlog.log
log4j.appender.TTCC.File=./log/testlog1.log
log4j.appender.HTML.File=./log/application.html

#// Here we define the layout and pattern
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= %5p [%t] (%F:%L)- %m%n
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c -%p - %m%n
log4j.appender.TTCC.layout=org.apache.log4j.TTCCLayout
log4j.appender.TTCC.layout.DateFormat=ISO8601
log4j.appender.HTML.layout=org.apache.log4j.HTMLLayout
log4j.appender.HTML.layout.Title=Application log
log4j.appender.HTML.layout.LocationInfo=true

I would recommend that you write the following line in each of your classes that wants to log.

private static Logger LOG = Logger.getLogger(<actualClass>.class);

Then your logger is configured correctly.

Here http://logging.apache.org/log4j/1.2/manual.html is a perfectly fine starting point.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM